MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  The Metalanguage Prolog and Its Implementation

Download:
Download as a PDF | Download as a PS
by Gopalan Nadathur
http://www-users.cs.umn.edu/~gopalan/papers/flops.ps
Add To MetaCart

Abstract:

Abstract. Stimulated by concerns of software certication especially as it relates to mobile code, formal structures such as specications and proofs are beginning to play an explicit role in computing. In representing and manipulating such structures, an approach is needed that pays attention to the binding operation that is present in them. The language Prolog provides programming support for a higher-order treatment of abstract syntax that is especially suited to this task. This support is realized by enhancing the traditional strength of logic programming in the metalanguage realm with an ability for dealing directly with binding structure. This paper identies the features of Prolog that endow it with such a capability, illustrates their use and and describes methods for their implementation. Also discussed is a new realization of Prolog called Teyjus that incorporates the implementation ideas presented. 1

Citations

811 Proof-Carrying Code – Necula - 1997
448 An abstract Prolog instruction set – Warren
334 Explicit substitutions – Abadi, Cardelli, et al. - 1991
332 Uniform proofs as a foundation for logic programming – Miller, Nadathur, et al. - 1991
263 A Logic Programming Language with Lambda-Abstraction, Function Variables, and Simple Unification – Miller - 1991
206 Higher-order abstract syntax – Pfenning, Elliot - 1988
186 C.: System description: Twelf - a meta-logical framework for deductive systems,Proceedings of the 16th International Conference on Automated Deduction (CADE-16 – Pfenning, Schurmann - 1999
182 Logic programming in the LF logical framework – Pfenning - 1991
178 A unification algorithm for typed -calculus – Huet - 1975
148 Higher-order logic programming – Nadathur, Miller - 1998
131 Proving and applying program transformations expressed with second-order patterns – Huet, Lang - 1978
113 An algorithm for optimal lambda calculus reduction – Lamping - 1990
79 Optimal Reductions in the Lambda-Calculus – L'evy - 1980
62 Implementing tactics and tacticals in a higher-order logic programming language – Felty - 1993
50 From operational semantics to abstract machines – Hannan, Miller - 1992
38 Proof search in the intuitionistic sequent calculus – Shankar - 1992
30 An empirical study of the runtime behavior of higher-order logic programs – Michaylov, Pfenning - 1992
30 A notation for lambda terms: A generalization of environments – Nadathur, Wilson - 1998
28 System description: Teyjus—a compiler and abstract machine based implementation of Lambda Prolog – Nadathur, Mitchell - 1999
27 Higher-order Uni via Explicit Substitutions – Dowek, Hardin, et al. - 2000
24 A Proof Procedure for the Logic of Hereditary Harrop Formulas – Nadathur - 1993
23 The Type System of a Higher-Order Logic Programming Language – Nadathur, Pfenning - 1992
22 Naive reverse can be linear – Brisset, Ridoux - 1991
21 Scoping constructs in logic programming: Implementation problems and their solution – Nadathur, Jayaraman, et al. - 1995
20 A fine-grained notation for lambda terms and its use in intensional operations – Nadathur - 1999
19 Implementing polymorphic typing in a logic programming language – Kwon, Nadathur, et al. - 1994
16 Implementation considerations for higher-order features in logic programming – Nadathur, Jayaraman, et al. - 1993
15 A proposal for modules in *Prolog – Miller - 1994
5 The compilation of Prolog and its execution with – Brisset, Ridoux - 1992
5 Let-polymorphism and eager type schemes – Liang - 1980
5 Uni under a mixed pre – Miller - 1992
4 An explicit substitution notation in a Prolog implementation – Nadathur - 1998
3 Lightweight lemmas in Prolog – Appel, Felty - 1999
2 MALIv06: Tutorial and reference manual – Ridoux - 1991
1 Realizing modularity in Prolog – Nadathur, Tong - 1999