LEAP: A Language with Eval And Polymorphism

We describe the core of a new strongly-typed functional programming language called LEAP, a “Language with Eval And Polymorphism.” Pure LEAP is an extension of the ω-order polymorphic λ-calculus (F ω) by global definitions that allows the representation of programs and the definition of versions of reify, reflect, and eval for all of (F ω). Pure LEAP is therefore highly reflexive and strongly typed. We believe that Pure LEAP can be extended to a practical and efficient metalanguage in the ML tradition. At present we are experimenting with a prototype implementation of Pure LEAP.

[1]  Frank Pfenning,et al.  Inductively Defined Types in the Calculus of Constructions , 1989, Mathematical Foundations of Programming Semantics.

[2]  John McCarthy,et al.  History of LISP , 1978, SIGP.

[3]  Corrado Böhm,et al.  Automatic Synthesis of Typed Lambda-Programs on Term Algebras , 1985, Theor. Comput. Sci..

[4]  Mitchell Wand,et al.  The mystery of the tower revealed: a non-reflective description of the reflective tower , 1986, LFP '86.

[5]  Mitchell Wand,et al.  The mystery of the tower revealed: A nonreflective description of the reflective tower , 1988, LISP Symb. Comput..

[6]  J. Fenstad Proceedings of the Second Scandinavian Logic Symposium , 1971 .

[7]  M. Tofte Operational Semantics and Polymorphic Type Inference , 1988 .

[8]  Frank Pfenning,et al.  Partial polymorphic type inference and higher-order unification , 1988, LISP and Functional Programming.

[9]  Gerald Jay Sussman,et al.  The Art of the Interpreter or, The Modularity Complex (Parts Zero, One, and Two) , 1978 .

[10]  Robin Milner The standard ML core language , 1984 .

[11]  John C. Reynolds,et al.  Definitional Interpreters for Higher-Order Programming Languages , 1972, ACM '72.

[12]  A. Church The calculi of lambda-conversion , 1941 .

[13]  Mitchell Wand,et al.  Reification: Reflection without metaphysics , 1984, LFP '84.

[14]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[15]  Gopalan Nadathur,et al.  Higher-Order Logic Programming , 1986, ICLP.

[16]  John C. Reynolds,et al.  Towards a theory of type structure , 1974, Symposium on Programming.

[17]  John McCarthy,et al.  LISP 1.5 Programmer's Manual , 1962 .

[18]  Brian Cantwell Smith,et al.  Reflection and semantics in LISP , 1984, POPL.

[19]  John C. Reynolds,et al.  Three Approaches to Type Structure , 1985, TAPSOFT, Vol.1.

[20]  J. Girard Une Extension De ĽInterpretation De Gödel a ĽAnalyse, Et Son Application a ĽElimination Des Coupures Dans ĽAnalyse Et La Theorie Des Types , 1971 .