A theory of higher order communicating systems
Information and Computation
Bisimulation for higher-order process calculi
Information and Computation
PI-Calculus: A Theory of Mobile Processes
PI-Calculus: A Theory of Mobile Processes
Strong Normalisation in Higher-Order Action Calculi
TACS '97 Proceedings of the Third International Symposium on Theoretical Aspects of Computer Software
Fibrational Control Structures
CONCUR '95 Proceedings of the 6th International Conference on Concurrency Theory
The Curry-Howard Correspondence in Set Theory
LICS '00 Proceedings of the 15th Annual IEEE Symposium on Logic in Computer Science
The implementation of procedurally reflective languages
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
On the expressive power of polyadic synchronisation in π-calculus
Nordic Journal of Computing
Categorical logic of names and abstraction in action calculi
Mathematical Structures in Computer Science
Hi-index | 0.01 |
The @p-calculus is not a closed theory, but rather a theory dependent upon some theory of names. Taking an operational view, one may think of the @p-calculus as a procedure that when handed a theory of names provides a theory of processes that communicate over those names. This openness of the theory has been exploited in @p-calculus implementations, where ancillary mechanisms provide a means of interpreting of names, e.g. as tcp/ip ports. But, foundationally, one might ask if there is a closed theory of processes, i.e. one in which the theory of names arises from and is wholly determined by the theory of processes. Here we present such a theory in the form of an asynchronous message-passing calculus built on a notion of quoting. Names are quoted processes, and as such represent the code of a process, a reification of the syntactic structure of the process as an object for process manipulation. Name- passing in this setting becomes a way of passing the code of a process as a message. In the presence of a dequote operation, turning the code of a process into a running instance, this machinery yields higher-order characteristics without the introduction of process variables. As is standard with higher-order calculi, replication and/or recursion is no longer required as a primitive operation. Somewhat more interestingly, the introduction of a process constructor to dynamically convert a process into its code is essential to obtain computational completeness, and simultaneously supplants the function of the @n operator. In fact, one may give a compositional encoding of the @n operator into a calculus featuring dynamic quote as well as dequote.