Skip to main content
Log in

Control delimiters and their hierarchies

  • Published:
LISP and Symbolic Computation

Abstract

Since control operators for theunrestricted transfer of control are too powerful in many situations, we propose thecontrol delimiter as a means for restricting control manipulations and study its use in Lisp- and Scheme-like languages. In a Common Lisp-like setting, the concept of delimiting control provides a well-suited terminology for explaining different control constructs. For higher-order languages like Scheme, the control delimiter is the means for embedding Lisp control constructs faithfully and for realizing high-level control abstractions elegantly. A deeper analysis of the examples suggests a need for an entirecontrol hierarchy of such delimiters. We show how to implement such a hierarchy on top of the simple version of a control delimiter.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. O.J. Dahl and C.A.R. Hoare. Hierarchical program structure. In O.-J. Dahl, E. Dijkstra, and C.A.R. Hoare, editors,Structured Programming, Academic Press, 1972.

  2. R.K. Dybvig and R. Hieb. Engines from continuations.Journal of Computer Languages (Pergamon Press), 14(2), 1989.

  3. M. Felleisen. A calculus for assignments in higher-order languages.Proc. 14th ACM Symposium on Principles of Programming Languages, 314–325, 1987.

  4. M. Felleisen. The theory and practice of first-class prompts.Proc. 15th ACM Symposium on Principles of Programming Languages, 180–190, 1988.

  5. M. Felleisen, M. Wand, D.P. Friedman, and B.F. Duba. Abstract continuations: a mathematical semantics for handling full functional jumps.Proc. Conference on Lisp and Functional Programming, 52–62, 1988.

  6. C.T. Haynes and D.P. Friedman. Abstracting timed preemption with engines.Journal of Computer Languages (Pergamon Press), 12(2):109–121, 1987.

    Google Scholar 

  7. C.T. Haynes and D.P. Friedman. Embedding continuations in procedural objects.ACM Transactions on Programming Languages and Systems, 9(4):245–254, 1987.

    Google Scholar 

  8. C.T. Haynes, D.P. Friedman, and M. Wand. Obtaining coroutines from continuations.Journal of Computer Languages (Pergamon Press), 11(3/4):109–121, 1986.

    Google Scholar 

  9. G.F. Johnson and D. Duggan. Stores and partial continuations as first-class objects in a language and its environment.Proc. 15th ACM Symposium on Principles of Programming Languages, 158–168, 1988.

  10. E. Kohlbecker.Syntactic Extensions in the Programming Language Lisp. PhD thesis, Indiana University, 1986.

  11. P.J. Landin. The next 700 programming languages.Communications of the ACM, 9(3):157–166, 1966.

    Google Scholar 

  12. C.D. Marlin.Coroutines—A Programming Methodology, a Language Design and an Implementation. Volume 95 ofLecture Notes in Computer Science, Springer-Verlag, Heidelberg, 1980.

    Google Scholar 

  13. J. McCarthy et al.Lisp 1.5 Programmer's Manual. The MIT Press, Cambridge, 2 edition, 1965.

    Google Scholar 

  14. J. Rees and W. Clinger. The revised3 report on the algorithmic language scheme.SIGPLAN Notices, 21(12):37–79, 1986.

    Google Scholar 

  15. J.C. Reynolds. Gedanken—a simple typeless language based on the principle of completeness and the reference concept.Communications of the ACM, 13(5):308–319, 1970.

    Google Scholar 

  16. G.L. Steele Jr.Common Lisp—The Language. Digital Press, 1984.

  17. J.E. Stoy and C. Strachey. OS6: an operating system for a small computer.Comp. J., 15(2):117–124; 195–203, 1972.

    Google Scholar 

  18. G.J. Sussman and G.L. Steele Jr.Scheme: An interpreter for the extended lambda calculus. Memo 349, MIT AI Lab, 1975.

Download references

Author information

Authors and Affiliations

Authors

Additional information

The work of both authors was partially supported by the National Science Foundation and DARPA.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Sitaram, D., Felleisen, M. Control delimiters and their hierarchies. Lisp and Symbolic Computation 3, 67–99 (1990). https://doi.org/10.1007/BF01806126

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01806126

Keywords

Navigation