TPPP 1994: Theory and Practice of Parallel Programming pp 300-319 | Cite as
First class continuation facilities in concurrent programming language Harmony/2
Abstract
Harmony/2 is an Actor based object-oriented concurrent programming language. Its novel features include two frameworks of first class continuations, namely method continuations and message continuations. The article addresses the technical difficulty in integration of first class continuation facilities and concurrency models (VST problem) and then proposes two frameworks of first class continuation. Both frameworks prevent VST problem and guarantee system's soundness. Method continuation framework is a variant of traditional first continuation facility with added delayed installation semantics. It allows the safe use of continuations beyond objects' boundary and thus enabling construction of arbitrary control structures in concurrent environment. Message continuation framework is based on the observation that a message represents the continuation after the message sending. History sensitive semantics (one-shot property) and dynamic extent property given to message continuations makes the system free of VST. Two-way characteristics and synchronization semantics enables construction of arbitrary communication structures with high degree of concurrency.
Keywords
Message Passing Method Continuation Class Message Concurrency Model Future ObjectPreview
Unable to display preview. Download preview PDF.
References
- [Agh86]G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, 1986.Google Scholar
- [AM91]A. Appel and D. MacQueen. Standard ML of New Jersey. In M. Wirsing, editor, Third International Symposium on Programming Language Implementation and Logic Programming, Lecture Notes in Computer Science, New York, August 1991. Springer-Verlag.Google Scholar
- [Ame87]P. America. POOL-T: A parallel object-oriented language. In A. Yonezawa and M. Tokoro, editors, Object-Oriented Concurrent Programming, pages 199–220. MIT Press, Cambridge, Mass., 1987.Google Scholar
- [Chi92]A. Chien. Concurrent Aggregates. MIT Press, 1992.Google Scholar
- [CR91]W. Clinger and J. Rees. Revised4 report on the algorithmic language scheme. ACM LISP Pointers, IV(3), July 1991.Google Scholar
- [FH84]D. P. Friedman and C. T. Haynes. Constraining control. In Conference Record of the ACM Symposium on Principles of Programming Languages, pages 245–254, 1984.Google Scholar
- [Hal85]R. Halstead. Multilisp: A language for concurrent symbolic computation. ACM Trans. on Programming Languages and Systems, pages 501–538, October 1985.Google Scholar
- [IM89]T. Ito and M. Matsui. A parallel lisp language pailisp and its kernel specification. In T. Ito and Jr. R. H. Halstead, editors, Proceedings of US/Japan Workshop on Parallel Lisp, volume 441 of LNCS, pages 58–100. Springer-Verlag, June 1989.Google Scholar
- [Kob]N. Kobayashi. Personal discussion.Google Scholar
- [KW89]M. Katz and D. Weise. Continuing into the future: On the interaction of futures. In T. Ito and Jr. R. H. Halstead, editors, Proceedings of US/Japan Workshop on Parallel Lisp, volume 441 of LNCS, pages 101–102, 1989.Google Scholar
- [KY94]N. Kobayashi and A. Yonezawa. Towards foundations for concurrent object-oriented programming. In Proceedings of ACM Conference on Object-Oriented Systems, Languages, and Applications, pages 31–45, 1994.Google Scholar
- [Nie87]O. M. Nierstrasz. Active objects in Hybrid. In Object-Oriented Programming Systems, Languages and Applications, volume 22(12), pages 243–253. SIGPLAN Notices (ACM), December 1987.Google Scholar
- [QD93]C. Queinnec and D. DeRoure. Design of a concurrent and distributed language. In Jr. R. H. Halstead and T. Ito, editors, Proceedings of US/Japan Workshop qn Parallel Symbolic Computing: Languages, Systems, and Applications, volume 748 of LNCS, pages 234–259. Springer-Verlag, October 1993.Google Scholar
- [RHH89]Jr. R. H. Halstead. New ideas in parallel lisp: Language design, implementation, and programming tools. In T. Ito and Jr. R. H. Halstead, editors, Proceedings of US/Japan Workshop on Parallel Lisp, volume 441 of LNCS, pages 2–57. Springer-Verlag, June 1989.Google Scholar
- [Shi88]Etsuya Shibayama. How to invent distributed implementation schemes of an object-based concurrent language: A transformational approach. In Proceedints of Object-Oriented Programming Systems, Languages and Applications (OOPSLA '88), pages 297–305, 1988.Google Scholar
- [Sto77]J. Stoy. Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. MIT Press, Cambridge, MA, 1977.Google Scholar
- [TMY93]K. Taura, S. Matsuoka, and A. Yonezawa. An efficient implementation scheme of concurrent object-oriented languages on stock multicomputers. In Proceedings of the Symposium on Principles & Practices of Parallel Programming (PPoPP '93), pages 218–228, 1993.Google Scholar
- [Wak93]K. Wakita. First class messages as first class continuations. In proceedings of ISOTAS '93 (LNCS 742), pages 442–459, Kanazawa, November 1993.Google Scholar
- [Wak94]K. Wakita. A concurrent language harmony/2 and its first class continuation mechanism (in Japanese). Technical Report COMP93-79, SS93-47, IEICE (The Institute of Electronics, Information and Communication Engineers), 1994.Google Scholar
- [Wan80]M. Wand. Continuation-based multiprocessing. In Conference Record of the 1980 Lisp Conference, pages 19–28, 1980.Google Scholar
- [YBS86]A. Yonezawa, J.-P. Briot, and E. Shibayama. Object-oriented concurrent programming in ABCL/1. In Object-Oriented Programming Systems, Languages and Applications, volume 21(11), pages 258–268. SIGPLAN Notices (ACM), November 1986.Google Scholar
- [Yon90]A. Yonezawa. ABCL: An Object-Oriented Concurrent System. MIT Press, Cambridge, Mass., 1990.Google Scholar
- [YT86]Y. Yokote and M. Tokoro. The design and implementation of ConcurrentSmalltalk. In Object-Oriented Programming Systems, Languages and Applications, volume 21(11), pages 331–340. SIGPLAN Notices (ACM), November 1986.Google Scholar
- [YT87]Y. Yokote and M. Tokoro. Concurrent programming in ConcurrentSmalltalk. In A. Yonezawa and M. Tokoro, editors, Object-Oriented Concurrent Programming, pages 129–158. MIT Press, Cambridge, Mass., 1987.Google Scholar