Interaction Nets with McCarthy's amb

Abstract Interaction nets are graphical rewrite systems which have been successfully used to implement various efficient evaluation strategies in the λ-calculus (including optimal reduction). However, they are intrinsically deterministic and this prevents from applying these techniques to concurrent languages where non-determinism plays a key role. In this paper we show that a minimal extension —the addition of one agent in the spirit of McCarthy's amb operator —allows us to define non-deterministic processes such as angelic and infinity merge, and more generally, to encode process calculi and wide classes of term rewriting systems (including systems defining parallel functions). We also show that Alexiev's INMPP (interaction nets with multiple principal ports) can be encoded, for which we give a textual calculus and a type system that ensures the absence of deadlock.

[1]  Andrea Asperti,et al.  The optimal implementation of functional programming languages , 1998, Cambridge tracts in theoretical computer science.

[2]  J. Shepherdson,et al.  Computer programming and formal systems , 1965 .

[3]  John McCarthy,et al.  A basis for a mathematical theory of computation, preliminary report , 1899, IRE-AIEE-ACM '61 (Western).

[4]  Ian Mackie,et al.  A Calculus for Interaction Nets , 1999, PPDP.

[5]  Eugene W. Stark On the relations computable by a class of concurrent automata , 1989, POPL '90.

[6]  Ron Dinishak The optimal implementation of functional programming languages , 2000, SOEN.

[7]  Yves Lafont,et al.  Interaction nets , 1989, POPL '90.

[8]  Simon L. Peyton Jones,et al.  Imperative functional programming , 1993, POPL '93.

[9]  Prakash Panangaden,et al.  The Expressive Power of Indeterminate Dataflow Primitives , 1992, Inf. Comput..

[10]  Martín Abadi,et al.  The geometry of optimal lambda reduction , 1992, POPL '92.

[11]  Vladimir Alexiev,et al.  Non-deterministic interaction nets , 1999 .

[12]  Ian Mackie,et al.  From Term Rewriting to Generalised Interaction Nets , 1996, PLILP.

[13]  Pierre-Louis Curien Categorical Combinators, Sequential Algorithms, and Functional Programming , 1993, Progress in Theoretical Computer Science.

[14]  Jorge Sousa Pinto,et al.  Sequential and Concurrent Abstract Machines for Interaction Nets , 2000, FoSSaCS.

[15]  Ian Mackie YALE: yet another lambda evaluator based on interaction nets , 1998, ICFP '98.

[16]  Philip Wadler,et al.  A practical subtyping system for Erlang , 1997, ICFP '97.

[17]  Andrea Asperti,et al.  The bologna optimal higher-order machine , 1995, Journal of Functional Programming.