The Buffered \pi-Calculus: A Model for Concurrent Languages
Abstract
Message-passing based concurrent languages are widely used in developing large distributed and coordination systems. This paper presents the buffered $\pi$-calculus --- a variant of the $\pi$-calculus where channel names are classified into buffered and unbuffered: communication along buffered channels is asynchronous, and remains synchronous along unbuffered channels. We show that the buffered $\pi$-calculus can be fully simulated in the polyadic $\pi$-calculus with respect to strong bisimulation. In contrast to the $\pi$-calculus which is hard to use in practice, the new language enables easy and clear modeling of practical concurrent languages. We encode two real-world concurrent languages in the buffered $\pi$-calculus: the (core) Go language and the (Core) Erlang. Both encodings are fully abstract with respect to weak bisimulations.
- Publication:
-
arXiv e-prints
- Pub Date:
- December 2012
- DOI:
- 10.48550/arXiv.1212.6183
- arXiv:
- arXiv:1212.6183
- Bibcode:
- 2012arXiv1212.6183D
- Keywords:
-
- Computer Science - Logic in Computer Science;
- Computer Science - Formal Languages and Automata Theory