Inside COM
IEEE Transactions on Software Engineering
Revised5 report on the algorithmic language scheme
ACM SIGPLAN Notices
Communicating and mobile systems: the &pgr;-calculus
Communicating and mobile systems: the &pgr;-calculus
Pict: a programming language based on the Pi-Calculus
Proof, language, and interaction
Nomadic pict: correct communication infrastructure for mobile computation
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Using passive object garbage collection algorithms for garbage collection of active objects
Proceedings of the 3rd international symposium on Memory management
Handbook of Process Algebra
PI-Calculus: A Theory of Mobile Processes
PI-Calculus: A Theory of Mobile Processes
A Virtual Machine for a Process Calculus
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
Concurrent Cycle Collection in Reference Counted Systems
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Implicit Typing à la ML for the Join-Calculus
CONCUR '97 Proceedings of the 8th International Conference on Concurrency Theory
Why events are a bad idea (for high-concurrency servers)
HOTOS'03 Proceedings of the 9th conference on Hot Topics in Operating Systems - Volume 9
Mobile Agents in Interaction Spaces
Electronic Notes in Theoretical Computer Science (ENTCS)
Coordinating mobile agents in interaction spaces
Science of Computer Programming
Provably Correct Implementations of Services
Trustworthy Global Computing
Analysing scientific workflows with Computational Tree Logic
Cluster Computing
Parallel computing with the Pi-calculus
Proceedings of the sixth workshop on Declarative aspects of multicore programming
Hi-index | 0.00 |
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.