Proof-Theoretic Foundation of Compilation in Logic Programming

around a compiler based on Warren’s Abstract Machine (WAM) or a variant of it. In spite of various correctness proofs, the logical machinery relating the proof-theoretic specification of a logic programming language and its compiled form is still poorly understood. In this paper, we propose a logicindependent definition of compilation for logic programming languages. We apply this methodology to derive the first cut of a compiler and the corresponding abstract machine for the language of hereditary Harrop formulas and then for its linear refinement.

[1]  Egon Börger,et al.  CLAM specification for provably correct compilation of CLP( R ) programs , 1993, Specification and validation methods.

[2]  Frank Pfenning,et al.  Elf: A Meta-Language for Deductive Systems (System Descrition) , 1994, CADE.

[3]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[4]  Frank Pfenning,et al.  A linear logical framework , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[5]  P. J. Landin The Mechanical Evaluation of Expressions , 1964, Comput. J..

[6]  Gopalan Nadathur,et al.  Scoping Constructs in Logic Programming: Implementation Problems and their Solutions , 1995, J. Log. Program..

[7]  Frank Pfenning,et al.  Efficient Resource Management for Linear Logic Proof Search , 1996, ELP.

[8]  Egon Börger,et al.  The WAM - Definition and Compiler Correctness , 1995, Logic Programming: Formal Methods and Practical Applications.

[9]  Gopalan Nadathur,et al.  Implementation Considerations for Higher-Order Features in Logic Programming , 1993 .

[10]  Gopalan Nadathur,et al.  Uniform Proofs as a Foundation for Logic Programming , 1991, Ann. Pure Appl. Log..

[11]  Gopalan Nadathur,et al.  Implementing Polymorphic Typing in a Logic Programming Language , 1994, Comput. Lang..

[12]  Hassan Aït-Kaci,et al.  Warren's Abstract Machine: A Tutorial Reconstruction , 1991 .

[13]  Christoph Beierle,et al.  Correctness Proof For the WAM with Types , 1991, CSL.

[14]  David M. Russinoff A Verified Prolog Compiler for the Warren Abstract Machine , 1992, J. Log. Program..

[15]  Dale Miller,et al.  Logic programming in a fragment of intuitionistic linear logic , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[16]  F. Pfenning Logic programming in the LF logical framework , 1991 .

[17]  Roland H. C. Yap,et al.  An abstract machine for CLP(R) , 1992, PLDI '92.

[18]  William L. Scherlis,et al.  Compilers and staging transformations , 1986, POPL '86.

[19]  Frank Pfenning,et al.  Efficient resource management for linear logic proof search , 1996, Theor. Comput. Sci..