Skip to main content
Log in

The implementation of retention in a coroutine environment

  • Published:
Acta Informatica Aims and scope Submit manuscript

    We’re sorry, something doesn't seem to be working properly.

    Please try refreshing the page. If that doesn't work, please contact support so we can address the problem.

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.

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. Reference manual for the Ada programming language. ACM SIGPLAN AdaTEC Special Publication. Draft proposed ANSI standard document, 1982

  2. Belady, L.A., Kuehner, C.J.: Dynamic space sharing in computer systems. Comm. ACM 12, 282–288 (1969)

    Google Scholar 

  3. Berry, D., Sorkin, A.: Time required for garbage collection in retention block-structures languages. Internat J. Compu. Information Sci. 7, 361–404 (1978)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. Bitner, J.R., Reingold, E.M.: Backtrack programming techniques. Comm. ACM 18, 651–656 (1975)

    Google Scholar 

  6. Bobrow, D., Wegbreit, B.: A model and stack implementation of multiple environments. Comm. ACM 16, 591–603 (1973)

    Google Scholar 

  7. Coon, L., Kearns, J.P., Soffa, M.L.: The contraction of control implementations. (Submitted for publication, 1982)

  8. Dahl, O.-J., Myhrhaug, B., Nyggard, K.: SIMULA-67: common base language. Report S-2, Norwegian Computing Center, 1968

  9. Francez, N., Klebansky, B., Pnueli, A.: Backtracking in recursive computations. Acta Informat 8, 125–144 (1977)

    Google Scholar 

  10. Golomb, S.W., Baumert, L.D.: Backtrack programming. J. Assoc. Comput. Mach. 12, (1965)

  11. Hansen, P.B.: The architecture of concurrent programs. Englewood Cliffs: Prentice-Hall 1977

    Google Scholar 

  12. Hanson, D.R., Griswold, R.E.: The SL5 procedure mechanism. Comm. ACM 21, 392–400 (1978)

    Article  Google Scholar 

  13. Jensen, K., Wirth, N.: PASCAL user manual and report Berlin, Heidelberg, New York:Springer 1974

    Google Scholar 

  14. Kearns, J.P., Soffa, M.L.: Performance comparison of copy-less coroutine implementations. Proc. 5th IEEE COMPSAC pp. 213–218, 1981

  15. Kearns, J.P., Meier, C.J., Soffa, M.L.: Performance evaluation of control implementations. IEEE Trans. Software Engrg. SE-8, 89–96 (1982)

    Google Scholar 

  16. Lindstrom, G.: Backtracking in a generalized control setting. ACM Trans. Progr. Lang. Syst. l, 8–26 (1979)

    Google Scholar 

  17. Lindstrom, G., Soffa, M.L.: Referencing and retention in block-structured coroutines. ACM Trans. Progr. Lang. Syst. 3, 263–292 (1981)

    Google Scholar 

  18. Mitchell, J.G., Maybury, W., Sweet R.: Mesa Language Manual, Xerox, Palo Alto, CA, 1979

  19. Shaw, M., Wulf, W.: Toward relaxing assumptions in languages and their implementations ACM Sigplan Notices 15, 45–61 (1980)

    Google Scholar 

  20. Wang, A, Dahl, O.-J.: Coroutine sequencing in a block-structured environment. BIT 11, 425–449 (1971)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work supported in part by NSF grants MCS-7906102 and MCS-8119341

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Issue Date:

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

Keywords

Navigation