Operational Interpretations of Linear Logic

Two different operational interpretations of intuitionistic linear logic have been proposed in the literature. The simplest interpretation recomputes non-linear values every time they are required. It has good memory-management properties, but is often dismissed as being too inefficient. Alternatively, one can memoize the results of evaluating non-linear values. This avoids any recomputation, but has weaker memory-management properties. Using a novel combination of type-theoretic and operational techniques we give a concise formal comparison of the two interpretations. Moreover, we show that there is a subset of linear logic where the two operational interpretations coincide. In this subset, which is sufficiently expressive to encode call-by-value lambda-calculus, we can have the best of both worlds: a simple and efficient implementation, and good memory-management properties.

[1]  Henry G. Baker A “linear logic” Quicksort , 1994, SIGP.

[2]  Philip Wadler,et al.  A Taste of Linear Logic , 1993, MFCS.

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

[4]  Yves Lafont,et al.  The Linear Abstract Machine , 1988, Theor. Comput. Sci..

[5]  Philip Wadler,et al.  Linear logic, monads and the lambda calculus , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[6]  Carl A. Gunter,et al.  Reference counting as a computational interpretation of linear logic , 1996, Journal of Functional Programming.

[7]  Erik Barendsen,et al.  Conventional and Uniqueness Typing in Graph Rewrite Systems , 1993, FSTTCS.

[8]  Samson Abramsky,et al.  Computational Interpretations of Linear Logic , 1993, Theor. Comput. Sci..

[9]  P. Lincoln,et al.  Operational aspects of linear lambda calculus , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[10]  Colin Runciman,et al.  Linearity and Laziness , 1991, FPCA.

[11]  Matthias Felleisen,et al.  Abstract models of memory management , 1995, FPCA '95.

[12]  Carl A. Gunter,et al.  Proving memory management invariants for a language based on linear logic , 1992, LFP '92.

[13]  Henry G. Baker,et al.  Lively linear Lisp: “look ma, no garbage!” , 1992, SIGP.

[14]  Philip Wadler,et al.  Is there a use for linear logic? , 1991, PEPM '91.

[15]  Philip Wadler,et al.  Linear Types can Change the World! , 1990, Programming Concepts and Methods.