Skip to main content

On the transfer of control between contexts

  • Structures De Controle Control Structures
  • Conference paper
  • First Online:
Programming Symposium

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 19))

Abstract

We describe a single primitive mechanism for transferring control from one module to another, and show how this mechanism, together with suitable facilities for record handling and storage allocation, can be used to construct a variety of higher-level transfer disciplines. Procedure and function calls, coroutine linkages, non-local gotos, and signals can all be specified and implemented in a compatible way. The conventions for storage allocation and name binding associated with control transfers are also under the programmer's control. Two new control disciplines are defined : a generalization of coroutines, and a facility for handling errors and unusual conditions which arise during program execution. Examples are drawn from the Modular Programming Language, in which all of the facilities described are being implemented.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • Balzer, R.M., "PORTS — A Method for Dynamic interprogram Communication and Job Control", Proc AFIPS Conf. 39 (1971 SJCC).

    Google Scholar 

  • Bensoussan, A. et al., "The Multics Virtual Memory: Concepts and Design", Comm ACM 15, 5 (May 1972).

    Google Scholar 

  • Bobrow, D.G. and Wegbreit, B., "A model and Stack implementation of Multiple Environments", Comm. ACM 16, 10 (Oct 1973).

    Google Scholar 

  • Brinch Hansen, P., "The Nucleus of a Multiprogramming System", Comm. ACM 13, 4 (April 1970).

    Google Scholar 

  • Conway, M.E., "Design of a Separable Transition-diagram Compiler", Comm. ACM 6, 7 (July 1963).

    Google Scholar 

  • Dennis, J.B., "Programming Generality, Parallelism and Computer Architecture", Proc. IFIP Congress 1968, North-Holland Publishing Co., Amsterdam, 1969.

    Google Scholar 

  • Dijkstra, E.W., "Cooperating Sequential Processes", in Programming Languages, Genuys, ed., Academic Press, New York, 1967.

    Google Scholar 

  • Fisher, D.A., Control Structures for Programming Languages, Ph. D. Thesis, Carnegie-Mellon University, May 1970 (AD 708511)

    Google Scholar 

  • Hoare, C.A.R. and Dahl, O-J., "Hierarchical Program Structures", in Structured Programming, Academic Press, New York, 1972.

    Google Scholar 

  • Knuth, D., Fundamental Algorithms, Addison Wesley, Reading, Mass., 1968, p. 425.

    Google Scholar 

  • Krutar, R.A., "Conversational Systems Programming", in Sigplan Notices 6, 12 (Dec 1971).

    Google Scholar 

  • Lampson, B.W., "On Reliable and Extendable Operating Systems", in The Fourth Generation, Infotech, Maidenhead, Berks., 1971

    Google Scholar 

  • Mcllroy, M.D., "Coroutines: Semantics in Search of a Syntax", Bell Telephone Laboratories, Murray Hill, N.J., unpublished report.

    Google Scholar 

  • Organick, E.I., The Multics System An Examination of its Structure, MIT Press, Cambridge, Mass., 1972.

    Google Scholar 

  • Saltzer, J.H., Traffic Control in a Multiplexed Computer System, Sc.D. Thesis, MIT, 1966 (MAC TR-30).

    Google Scholar 

  • Wang, A. and Dahl, O-J., "Coroutine Sequencing in a Block Structured Environment", BIT 11 (1971), p. 425.

    Google Scholar 

  • Wegbreit, B., "The Treatment of Data Types in EL/1", Comm. ACM 17, 4 (April 1974).

    Google Scholar 

  • Wirth, N., "The Programming Language Pascal", Acta Informatica 1, 1 (1971).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

B. Robinet

Rights and permissions

Reprints and permissions

Copyright information

© 1974 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lampson, B.W., Mitchell, J.G., Satterthwaite, E.H. (1974). On the transfer of control between contexts. In: Robinet, B. (eds) Programming Symposium. Lecture Notes in Computer Science, vol 19. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-06859-7_134

Download citation

  • DOI: https://doi.org/10.1007/3-540-06859-7_134

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-06859-4

  • Online ISBN: 978-3-540-37819-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics