Summary
An efficient storage management scheme for languages supporting both coroutines and procedures is discussed. This scheme requires identifying those program components whose run time instances might need retention. These components could include both procedures and coroutines. A compile-time marking technique for determining these components in a block structured coroutine environment is presented. The impact that variations in the form of the coroutine control structures have on the technique is also addressed. Using the compile time marking as a guide, the storage management scheme can contract gracefully into a stack when programs use only a procedure call/return control discipline.
Similar content being viewed by others
References
Reference manual for the Ada programming language. ACM SIGPLAN AdaTEC Special Publication. Draft proposed ANSI standard document, 1982
Belady, L.A., Kuehner, C.J.: Dynamic space sharing in computer systems. Comm. ACM 12, 282–288 (1969)
Berry, D., Sorkin, A.: Time required for garbage collection in retention block-structures languages. Internat J. Compu. Information Sci. 7, 361–404 (1978)
Berry, D., Chirica, L., Johnston, J., Martin, D., Sorkin, A.: Time required for reference count management in retention block-structured languages, part 1. Internat J. Comput. information Sci. 7, 91–119 (1978)
Bitner, J.R., Reingold, E.M.: Backtrack programming techniques. Comm. ACM 18, 651–656 (1975)
Bobrow, D., Wegbreit, B.: A model and stack implementation of multiple environments. Comm. ACM 16, 591–603 (1973)
Coon, L., Kearns, J.P., Soffa, M.L.: The contraction of control implementations. (Submitted for publication, 1982)
Dahl, O.-J., Myhrhaug, B., Nyggard, K.: SIMULA-67: common base language. Report S-2, Norwegian Computing Center, 1968
Francez, N., Klebansky, B., Pnueli, A.: Backtracking in recursive computations. Acta Informat 8, 125–144 (1977)
Golomb, S.W., Baumert, L.D.: Backtrack programming. J. Assoc. Comput. Mach. 12, (1965)
Hansen, P.B.: The architecture of concurrent programs. Englewood Cliffs: Prentice-Hall 1977
Hanson, D.R., Griswold, R.E.: The SL5 procedure mechanism. Comm. ACM 21, 392–400 (1978)
Jensen, K., Wirth, N.: PASCAL user manual and report Berlin, Heidelberg, New York:Springer 1974
Kearns, J.P., Soffa, M.L.: Performance comparison of copy-less coroutine implementations. Proc. 5th IEEE COMPSAC pp. 213–218, 1981
Kearns, J.P., Meier, C.J., Soffa, M.L.: Performance evaluation of control implementations. IEEE Trans. Software Engrg. SE-8, 89–96 (1982)
Lindstrom, G.: Backtracking in a generalized control setting. ACM Trans. Progr. Lang. Syst. l, 8–26 (1979)
Lindstrom, G., Soffa, M.L.: Referencing and retention in block-structured coroutines. ACM Trans. Progr. Lang. Syst. 3, 263–292 (1981)
Mitchell, J.G., Maybury, W., Sweet R.: Mesa Language Manual, Xerox, Palo Alto, CA, 1979
Shaw, M., Wulf, W.: Toward relaxing assumptions in languages and their implementations ACM Sigplan Notices 15, 45–61 (1980)
Wang, A, Dahl, O.-J.: Coroutine sequencing in a block-structured environment. BIT 11, 425–449 (1971)
Author information
Authors and Affiliations
Additional information
This work supported in part by NSF grants MCS-7906102 and MCS-8119341
Rights and permissions
About this article
Cite this article
Kearns, J.P., Lou Soffa, M. The implementation of retention in a coroutine environment. Acta Informatica 19, 221–223 (1983). https://doi.org/10.1007/BF00265556
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00265556