Functional computation as concurrent computation

We investigate functional computation as a special form of concurrent computation. As formal basis, we use a uniformly confluent core of the ¿-calculus, which is also contained in models of higher-order concurrent constraint programming. We embed the call-by-need and the call-by-value ¿-calculus into the ¿-calculus. We prove that call-by-need complexity is dominated by call-by-value complexity. In contrast to the recently proposed call-by-need ¿-calculus, our concurrent call-by-need model incorporates mutual recursion and can be extended to cyclic data structures by means of constraints.

[1]  Simon Brock,et al.  Process Semantics of Graph Reduction , 1995, CONCUR.

[2]  Keshav Pingali,et al.  Lazy evaluation and the logic variable , 1988, ICS '88.

[3]  Joachim Niehren,et al.  Constraints for Free in Concurrent Computation , 1995, ASIAN.

[4]  Gérard Boudol Towards a Lambda-Calculus for Concurrent and Communicating Systems , 1989, TAPSOFT, Vol.1.

[5]  Gert Smolka,et al.  Encapsulated Search and Constraint Programming in Oz , 1994, PPCP.

[6]  S. Purushothaman Iyer,et al.  An Adequate Operational Semantics for Sharing in Lazy Evaluation , 1992, ESOP.

[7]  John Launchbury,et al.  A natural semantics for lazy evaluation , 1993, POPL '93.

[8]  Jan Willem Klop,et al.  Term rewriting systems: a tutorial , 1987 .

[9]  Michael J. Maher Logic Semantics for a Class of Committed-Choice Programs , 1987, ICLP.

[10]  Matthias Felleisen,et al.  A call-by-need lambda calculus , 1995, POPL '95.

[11]  Gérard Boudol,et al.  Asynchrony and the Pi-calculus , 1992 .

[12]  G. Erard Boudol Asynchrony and the -calculus (note) , 1992 .

[13]  Prakash Panangaden,et al.  The semantic foundations of concurrent constraint programming , 1991, POPL '91.

[14]  Martín Abadi,et al.  Explicit substitutions , 1989, POPL '90.

[15]  David Walker,et al.  Objects in the pi-Calculus , 1992, Inf. Comput..

[16]  David Sands,et al.  A Naïve Time Analysis and its Theory of Cost Equivalence , 1995, J. Log. Comput..

[17]  Alan Jeffrey,et al.  A fully abstract semantics for concurrent graph reduction , 1994, Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.

[18]  Robin Milner,et al.  The Polyadic π-Calculus: a Tutorial , 1993 .

[19]  Arvind,et al.  M-Structures: Extending a Parallel, Non-strict, Functional Language with State , 1991, FPCA.

[20]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[21]  Gert Smolka,et al.  Object-Oriented Concurrent Constraint Programming in Oz , 1993, KI.

[22]  Gert Smolka A Foundation for Higher-order Concurrent Constraint Programming , 1994, CCL.

[23]  Harold T. Hodes,et al.  The | lambda-Calculus. , 1988 .

[24]  Benjamin C. Pierce,et al.  Concurrent Objects in a Process Calculus , 1994, Theory and Practice of Parallel Programming.

[25]  Seif Haridi,et al.  Programming Paradigms of the Andorra Kernel Language , 1991, ISLP.

[26]  Mario Tokoro,et al.  An Object Calculus for Asynchronous Communication , 1991, ECOOP.

[27]  Joachim Niehren,et al.  A Confluent Relational Calculus for Higher-Order Programming with Constraints , 1994, CCL.

[28]  G. Smolka A Foundation for Higher-order Concurrent Constraint Programming , 1994 .

[29]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[30]  Robin Milner Functions as Processes , 1990, ICALP.

[31]  Vasco Thudichum Vasconcelos,et al.  Typed Concurrent Objects , 1994, ECOOP.

[32]  Martin Odersky,et al.  Call-by-name, call-by-value, call-by-need and the linear lambda calculus , 1995, MFPS.

[33]  Gert Smolka The Oz Programming Model , 1996 .

[34]  Gert Smolka,et al.  The Oz Programming Model , 1996, Computer Science Today.

[35]  Nobuko Yoshida,et al.  Optimal reduction in weak-λ-calculus with shared environments , 1993, FPCA '93.

[36]  Keshav Pingali,et al.  I-structures: data structures for parallel computing , 1986, Graph Reduction.

[37]  Gérard P. Huet,et al.  Confluent Reductions: Abstract Properties and Applications to Term Rewriting Systems , 1980, J. ACM.