Abstract
A programming style based on concurrent objects arises almost inevitably in languages where processes communicate by exchanging data on channels. Using the pict language as an experimental testbed, we introduce a simple object-based programming style and compare three techniques for controlling concurrency between methods in this setting: explicit locking, a standard choice operator, and a more refined replicated choice operator.
Preview
Unable to display preview. Download preview PDF.
References
Gul A. Agha. Actors: a Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, MA, 1986.
Gérard Boudol. Asynchrony and the π-calculus (note). Rapporte de Recherche 1702, INRIA Sofia-Antipolis, May 1992.
C. Hewitt. Viewing control structures as patterns of passing messages. Artificial Intelligence, 8:323–364, 1977. Influential description of a method for implementing distributed control structures: the ACTOR paradigm.
Kohei Honda and Mario Tokoro. An object calculus for asynchronous communication. In Pierre America, editor, Proceedings of the European Conference on Object-Oriented Programming (ECOOP), volume 512 of Lecture Notes in Computer Science, Geneva CH, 1991. Springer-Verlag, Berlin, Heidelberg, New York, Tokyo.
Cliff B. Jones. A pi-calculus semantics for an object-based design notation. In E. Best, editor, Proceedings of CONCUR'93, LNCS 715, pages 158–172. Springer-Verlag, 1993.
Naoki Kobayashi and Aki Yonezawa. Towards foundations for concurrent object-oriented programming — Types and language design. Submitted for publication, 1994.
Robin Milner. Functions as processes. Research Report 1154, INRIA, Sofia Antipolis, 1990. Final version in Journal of Mathematical Structures in Computer Science 2(2):119–141, 1992.
Robin Milner. The polyadic π-calculus: a tutorial. Technical Report ECS-LFCS-91-180, Laboratory for Foundations of Computer Science, University of Edinburgh, October 1991. Proceedings of the International Summer School on Logic and Algebra of Specification, Marktoberdorf, August 1991.
R. Milner, J. Parrow, and D. Walker. A calculus of mobile processes (Parts I and II). Information and Computation, 100:1–77, 1992.
Robin Milner and Mads Tofte. Commentary on Standard ML. The MIT Press, Cambridge, Massachusetts, 1991.
Robin Milner, Mads Tofte, and Robert Harper. The Definition of Standard ML. The MIT Press, 1990.
Oscar Nierstrasz. Towards an object calculus. In M. Tokoro, O. Nierstrasz, and P. Wegner, editors, Proceedings of the ECOOP '91 Workshop on Object-Based Concurrent Computing, Lecture Notes in Computer Science number 612, pages 1–20. Springer-Verlag, 1992.
Michael Papathomas. A unifying framework for process calculus semantics of concurrent object-oriented languages. In M. Tokoro, O. Nierstrasz, and P. Wegner, editors, Proceedings of the ECOOP '91 Workshop on Object-Based Concurrent Computing, LNCS 612, pages 53–79. Springer-Verlag, 1992.
Benjamin C. Pierce. Programming in the pi-calculus: An experiment in programming language design. Tutorial notes on the Pict language. Available electronically, 1994.
Benjamin C. Pierce and David N. Turner. Pict user manual. Available electronically, 1994.
Benjamin C. Pierce and David N. Turner. Simple type-theoretic foundations for object-oriented programming. Journal of Functional Programming, 4(2):207–247, April 1994. A preliminary version appeared in Principles of Programming Languages, 1993, and as University of Edinburgh technical report ECS-LFCS-92-225, under the title “Object-Oriented Programming Without Recursive Types”.
John Reppy. Synchronous operations as first-class values. In Programming Language Design and Implementation, pages 250–259. SIGPLAN, ACM, 1988.
John Reppy. CML: A higher-order concurrent language. In Programming Language Design and Implementation, pages 293–259. SIGPLAN, ACM, June 1991.
John Reppy. Higher-Order Concurrency. PhD thesis, Cornell University, June 1992. Technical Report TR 92-1285.
Davide Sangiorgi. Expressing Mobility in Process Algebras; First-Order and Higher-Order Paradigms. PhD thesis, Department of Computer Science, University of Edinburgh, 1992.
Gert Smolka. A Foundation for Concurrent Constraint Programming. In Constraints in Computational Logics, volume 845 of Lecture Notes in Computer Science, Munich, Germany, September 1994. Invited Talk.
Vasco T. Vasconcelos. Typed concurrent objects. In Proceedings of the Eighth European Conference on Object-Oriented Programming (ECOOP), volume 821 of Lecture Notes in Computer Science, pages 100–117. Springer-Verlag, July 1994.
Vasco T. Vasconcelos and Mario Tokoro. A Typing System for a Calculus of Objects. In First International Symposium on Object Technologies for Advanced Software, volume 742 of Lecture Notes in Computer Science, pages 460–474, November 1993.
David Walker. Algebraic proofs of properties of objects. In Proceedings of European Symposium on Programming. Springer-Verlag, 1994.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Pierce, B.C., Turner, D.N. (1995). Concurrent objects in a process calculus. In: Ito, T., Yonezawa, A. (eds) Theory and Practice of Parallel Programming. TPPP 1994. Lecture Notes in Computer Science, vol 907. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0026570
Download citation
DOI: https://doi.org/10.1007/BFb0026570
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-59172-6
Online ISBN: 978-3-540-49218-4
eBook Packages: Springer Book Archive