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.
Preview
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).
Bensoussan, A. et al., "The Multics Virtual Memory: Concepts and Design", Comm ACM 15, 5 (May 1972).
Bobrow, D.G. and Wegbreit, B., "A model and Stack implementation of Multiple Environments", Comm. ACM 16, 10 (Oct 1973).
Brinch Hansen, P., "The Nucleus of a Multiprogramming System", Comm. ACM 13, 4 (April 1970).
Conway, M.E., "Design of a Separable Transition-diagram Compiler", Comm. ACM 6, 7 (July 1963).
Dennis, J.B., "Programming Generality, Parallelism and Computer Architecture", Proc. IFIP Congress 1968, North-Holland Publishing Co., Amsterdam, 1969.
Dijkstra, E.W., "Cooperating Sequential Processes", in Programming Languages, Genuys, ed., Academic Press, New York, 1967.
Fisher, D.A., Control Structures for Programming Languages, Ph. D. Thesis, Carnegie-Mellon University, May 1970 (AD 708511)
Hoare, C.A.R. and Dahl, O-J., "Hierarchical Program Structures", in Structured Programming, Academic Press, New York, 1972.
Knuth, D., Fundamental Algorithms, Addison Wesley, Reading, Mass., 1968, p. 425.
Krutar, R.A., "Conversational Systems Programming", in Sigplan Notices 6, 12 (Dec 1971).
Lampson, B.W., "On Reliable and Extendable Operating Systems", in The Fourth Generation, Infotech, Maidenhead, Berks., 1971
Mcllroy, M.D., "Coroutines: Semantics in Search of a Syntax", Bell Telephone Laboratories, Murray Hill, N.J., unpublished report.
Organick, E.I., The Multics System An Examination of its Structure, MIT Press, Cambridge, Mass., 1972.
Saltzer, J.H., Traffic Control in a Multiplexed Computer System, Sc.D. Thesis, MIT, 1966 (MAC TR-30).
Wang, A. and Dahl, O-J., "Coroutine Sequencing in a Block Structured Environment", BIT 11 (1971), p. 425.
Wegbreit, B., "The Treatment of Data Types in EL/1", Comm. ACM 17, 4 (April 1974).
Wirth, N., "The Programming Language Pascal", Acta Informatica 1, 1 (1971).
Author information
Authors and Affiliations
Editor information
Rights 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