A sound reduction semantics for untyped CBN mutli-stage computation. Or, the theory of MetaML is non-trival (extended abstract)

A multi-stage computation is one involving more than one stage of execution. MetaML is a language for programming multi-stage computations. Previous studies presented big-step semantics, categorical semantics, and sound type systems for MetaML. In this paper, we report on a confluent and sound reduction semantics for untyped call-by name (CBN) MetaML. The reduction semantics can be used to formally justify some optimization performed by a CBN MetaML implementation. The reduction semantics demonstrates that non-trivial equalities hold for object-code, even in the untyped setting. The paper also emphasizes that adding intensional analysis (that is, taking-apart object programs) to MetaML remains an interesting open problem.

[1]  Walid Taha,et al.  An Idealized MetaML: Simpler, and More Expressive , 1999, ESOP.

[2]  John C. Mitchell,et al.  Foundations for programming languages , 1996, Foundation of computing series.

[3]  Robert Muller,et al.  M-LISP: a representation-independent dialect of LISP with reduction semantics , 1992, TOPL.

[4]  Mitchell Wand,et al.  The Theory of Fexprs is Trivial , 1998, LISP Symb. Comput..

[5]  Gordon D. Plotkin,et al.  Call-by-Name, Call-by-Value and the lambda-Calculus , 1975, Theor. Comput. Sci..

[6]  Robert D. Tennent,et al.  Semantics of programming languages , 1991, Prentice Hall International Series in Computer Science.

[7]  Robert Muller,et al.  A staging calculus and its application to the verification of translators (preliminary report) , 1994, POPL '94.

[8]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[9]  Andrew M. Pitts,et al.  Higher order operational techniques in semantics , 1999 .

[10]  Alan Bawden,et al.  Quasiquotation in Lisp , 1999, PEPM.

[11]  Walid Taha A sound reduction semantics for untyped CBN multi-stage computation. Or, the theory of MetaML is non-trivial (preliminary Report) , 1999 .

[12]  Zine-El-Abidine Benaissa,et al.  Multi-Stage Programming : Axiomatization and Type , 1998 .

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

[14]  Rowan Davies,et al.  A temporal-logic approach to binding-time analysis , 1995, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[15]  Walid Taha,et al.  MetaML and multi-stage programming with explicit annotations , 2000, Theor. Comput. Sci..

[16]  Neil D. Jones,et al.  A partial evaluator for the untyped lambda-calculus , 1991, Journal of Functional Programming.

[17]  Walid Taha,et al.  Multi-Stage Programming: Axiomatization and Type Safety , 1998, ICALP.

[18]  Flemming Nielson,et al.  Two-level functional languages , 1992, Cambridge tracts in theoretical computer science.

[19]  Robert Glück,et al.  An Automatic Program Generator for Multi-Level Specialization , 1997, LISP Symb. Comput..

[20]  Robert Glück,et al.  Generalization in Hierarchies of Online Program Specialization Systems , 1998, LOPSTR.

[21]  Eugenio Moggi,et al.  A categorical account of two-level languages , 1997, MFPS.

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

[23]  Elena Machkasova,et al.  A Calculus for Link-Time Compilation , 2000, ESOP.

[24]  Eugenio Moggi,et al.  Notions of Computation and Monads , 1991, Inf. Comput..

[25]  Robert Glück,et al.  Efficient Multi-level Generating Extensions for Program Specialization , 1995, PLILP.

[26]  Walid Taha,et al.  Multi-stage programming with explicit annotations , 1997 .

[27]  Glynn Winskel,et al.  The formal semantics of programming languages - an introduction , 1993, Foundation of computing series.

[28]  Olivier Danvy,et al.  Thunks and the λ-calculus , 1997, Journal of Functional Programming.

[29]  Peter Sestoft,et al.  An experiment in partial evaluation: the generation of a compiler generator , 1985, SIGP.

[30]  Walid Taha,et al.  An Idealized MetaML: Simpler, and More Expressive (includes proofs) , 1998 .

[31]  T. Sheard,et al.  A Categorical Analysis of Multi-Level Languages (Extended Abstract) , 1998 .

[32]  Olivier Danvy,et al.  A computational formalization for partial evaluation , 1996, Mathematical Structures in Computer Science.

[33]  Walid Taha,et al.  Logical Modalities and Multi-Stage Programming , 1999 .

[34]  Robert Glück,et al.  Fast Binding-Time Analysis for Multi-Level Specialization , 1996, Ershov Memorial Conference.

[35]  John C. Mitchell On Abstraction and the Expressive Power of Programming Languages , 1991, Sci. Comput. Program..

[36]  Walid Taha,et al.  Multi-Stage Programming: Its Theory and Applications , 1999 .

[37]  Peter Thiemann,et al.  Sound Specialization in the Presence of Computational Effects , 1997, TACS.