skip to main content
10.1145/1134760.1134770acmconferencesArticle/Chapter ViewAbstractPublication PagesveeConference Proceedingsconference-collections
Article

A stackless runtime environment for a Pi-calculus

Published: 14 June 2006 Publication History

Abstract

The Pi-calculus is a formalism to model and reason about highly concurrent and dynamic systems. Most of the expressive power of the language comes from the ability to pass communication channels among concurrent processes, as any other value. We present in this paper the CubeVM, an interpreter architecture for an applied variant of the Pi-calculus, focusing on its operational semantics. The main characteristic of the CubeVM comes from its stackless architecture. We show, in a formal way, that the resource management model inside the VM may be greatly simplified without the need for nested stack frames. This is particularly true for the garbage collection of processes and channels. The proposed GC, based on a reference counting scheme, is highly concurrent and, most interestingly, does automatically detect and reclaim cycles of disabled processes. We also address the main performance issues raised by the fine-grained concurrency model of the Pi-calculus. We introduce the reactive variant of the semantics that allows, when applicable, to increase the performance drastically by bypassing the scheduler. We define the language subset of processes in so called chain-reaction forms for which the sequential semantics can be proved statically. We illustrate the expressive power and performance gains of such chain-reactions with examples of functional, dataflow and object-oriented systems. Encodings for the pure Pi-calculus are also demonstrated.

References

[1]
The computer language shootout. http://shootout.alioth.debian.org/.]]
[2]
The CubeVM project. http://www-poleia.lip6.fr/~pesch/cube.]]
[3]
The Python programming language. http://www.python.org.]]
[4]
D. F. Bacon and V. T. Rajan. Concurrent cycle collection in reference counted systems. In ECOOP, volume 2072 of LNCS, pages 207--235. Springer, 2001.]]
[5]
J. Bergstra, A. Ponse, and S. Smolka, editors. Handbook of process algebra. Elsevier, 2001.]]
[6]
L. M. Cédric Fournet, Cosimo Laneve and D. Rémy. Implicit typing à la ML for the join-calculus. In Proc. of the 1997 8th International Conference on Concurrency Theory. Springer-Verlag, 1997.]]
[7]
A. Fuggetta, G. P. Picco, and G. Vigna. Understanding Code Mobility. IEEE Transactions on Software Engineering, 24(5):342--361, 1998.]]
[8]
H. C. Lauer and R. M. Needham. On the duality of operating system structures. SIGOPS Oper. Syst. Rev., 13(2):3--19, 1979.]]
[9]
L. Lopes, F. Silva, and V. T. Vasconcelos. A virtual machine for the TyCO process calculus. In PPDP'99, volume 1702 of LNCS, pages 244--260. Springer-Verlag, Sept. 1999.]]
[10]
R. Milner. Communicating and Mobile Systems: The π-Calculus. Cambridge University Press, 1999.]]
[11]
I. N. I. Adams, D. H. Bartley, G. Brooks, R. K. Dybvig, D. P. Friedman, R. Halstead, C. Hanson, C. T. Haynes, E. Kohlbecker, D. Oxley, K. M. Pitman, G. J. Rozas, J. G. L. Steele, G. J. Sussman, M. Wand, and H. Abelson. Revised5 report on the algorithmic language scheme. SIGPLAN Not., 33(9):26--76, 1998.]]
[12]
J. K. Ousterhout. Why threads are a bad idea (for most purposes). Invited talk at the 1996 USENIX Technical Conference, 1996.]]
[13]
F. Peschanski. Mobile agents in interaction spaces. In Foundations of Coordination Languages and Software Architectures, ENTCS. Elsevier, Aug. 2005.]]
[14]
B. C. Pierce and D. N. Turner. Pict: A programming language based on the pi-calculus. In G. Plotkin, C. Stirling, and M. Tofte, editors, Proof, Language and Interaction: Essays in Honour of Robin Milner. MIT Press, 2000.]]
[15]
R. Pike. The implementation of newsqueak. Software - Practice and Experience, 20(7):649--659, 1990.]]
[16]
D. Rogerson. Inside COM. Microsoft Press, 1997.]]
[17]
D. Sangiorgi and D. Walker. The pi-calculus: a Theory of Mobile Processes. Cambridge University Press, 2001.]]
[18]
C. Tismer. Continuations and stackless python or "how to change a paradigm of an existing program". In Proceedings of the 8th International Python Conference, 2000.]]
[19]
A. Unypoth and P. Sewell. Nomadic Pict: Correct communication infrastructure for mobile computation. In POPL 2001. ACM Sigplan Notices, volume 36, March 2001.]]
[20]
A. Vardhan and G. Agha. Using passive object garbage collection algorithms for garbage collection of active objects. In ISMM'02: Proceedings of the 3rd international symposium on Memory management, pages 106--113, New York, NY, USA, 2002. ACM Press.]]
[21]
R. von Behren, J. Condit, and E. Brewer. Why events are a bad idea (for high-concurrency servers). In Proceedings of the 9th Workshop on Hot Topics in Operating Systems, May 2003.]]

Cited By

View all
  • (2019)A Calculus of Branching ProcessesTheoretical Computer Science10.1016/j.tcs.2019.06.028Online publication date: Jul-2019
  • (2011)Parallel computing with the Pi-calculusProceedings of the sixth workshop on Declarative aspects of multicore programming10.1145/1926354.1926363(45-54)Online publication date: 23-Jan-2011
  • (2011)Simulating Taverna workflows using stochastic process algebrasConcurrency and Computation: Practice & Experience10.1002/cpe.175723:16(1920-1935)Online publication date: 1-Nov-2011
  • Show More Cited By

Index Terms

  1. A stackless runtime environment for a Pi-calculus

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    VEE '06: Proceedings of the 2nd international conference on Virtual execution environments
    June 2006
    194 pages
    ISBN:1595933328
    DOI:10.1145/1134760
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 14 June 2006

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Pi-calculus
    2. garbage collection
    3. interpreter
    4. operational semantics

    Qualifiers

    • Article

    Conference

    VEE06

    Acceptance Rates

    Overall Acceptance Rate 80 of 235 submissions, 34%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)2
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 17 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2019)A Calculus of Branching ProcessesTheoretical Computer Science10.1016/j.tcs.2019.06.028Online publication date: Jul-2019
    • (2011)Parallel computing with the Pi-calculusProceedings of the sixth workshop on Declarative aspects of multicore programming10.1145/1926354.1926363(45-54)Online publication date: 23-Jan-2011
    • (2011)Simulating Taverna workflows using stochastic process algebrasConcurrency and Computation: Practice & Experience10.1002/cpe.175723:16(1920-1935)Online publication date: 1-Nov-2011
    • (2009)Analysing scientific workflows with Computational Tree LogicCluster Computing10.1007/s10586-009-0099-612:4(399-419)Online publication date: 1-Dec-2009
    • (2009)Provably Correct Implementations of ServicesTrustworthy Global Computing10.1007/978-3-642-00945-7_5(69-86)Online publication date: 5-Apr-2009

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media