System Description: Teyjus—A Compiler and Abstract Machine Based Implementation of λProlog
The logic programming language λProlog is based on the intuitionistic theory of higher-order hereditary Harrop formulas, a logic that significantly extends the theory of Horn clauses. A systematic exploitation of features in the richer logic endows λProlog with capabilities at the programming level that are not present in traditional logic programming languages. Several studies have established the value of λProlog as a language for implementing systems that manipulate formal objects such as formulas, programs, proofs and types. Towards harnessing these benefits, methods have been developed for realizing this language efficiently. This work has culminated in the description of an abstract machine and compiler based implementation scheme. An actual implementation of λProlog based on these ideas has recently been completed. The planned presentation will exhibit this system—called Teyjus—and will also illuminate the metalanguage capabilities of λProlog.
KeywordsLogic Program Logic Programming Horn Clause Abstract Machine Goal Structure
Unable to display preview. Download preview PDF.
- 1.B. Barras, S. Boutin, C. Cornes, J. Courant, J.C. Filliatre, E. Giménez, H. Herbelin, G. Huet, C. Muñoz, C. Murthy, C. Parent, C. Paulin, A. Saïbi, and B. Werner. The Coq Proof Assistant Reference Manual-Version V6.1. Technical Report 0203, INRIA, August 1997.Google Scholar
- 2.Pascal Brisset and Olivier Ridoux. The compilation of λProlog and its execution with MALI. Publication Interne No 687, IRISA, Rennes, November 1992.Google Scholar
- 4.Richard A. Hagen and Peter J. Robinson. Qu-Prolog 4.3 reference manual. Technical Report 99-03, Software Verification Research Centre, School of Information Technology, University of Queensland, 1999.Google Scholar
- 7.Dale Miller and Gopalan Nadathur. A logic programming approach to manipulating formulas and programs. In Seif Haridi, editor, IEEE Symposium on Logic Programming, pages 379–388. IEEE Computer Society Press, September 1987.Google Scholar
- 10.Gopalan Nadathur. An explicit substitution notation in a λProlog implementation. Technical Report TR-98-01, Department of Computer Science, University of Chicago, January 1998.Google Scholar
- 12.Gopalan Nadathur, Bharat Jayaraman, and Debra Sue Wilson. Implementation considerations for higher-order features in logic programming. Technical Report CS-1993-16, Department of Computer Science, Duke University, June 1993.Google Scholar
- 13.Gopalan Nadathur and Dale Miller. An overview of λProlog. In Kenneth A. Bowen and Robert A. Kowalski, editors, Fifth International Logic Programming Conference, pages 810–827. MIT Press, August 1988.Google Scholar
- 14.Gopalan Nadathur and Guanshan Tong. Realizing modularity in λProlog. Technical Report TR-97-07, Department of Computer Science, University of Chicago, August 1997. To appear in Journal of Functional and Logic Programming.Google Scholar
- 17.Frank Pfenning. Logic programming in the LF logical framework. In Gérard Huet and Gordon D. Plotkin, editors, Logical Frameworks. Cambridge University Press, 1991.Google Scholar
- 18.Frank Pfenning and Conal Elliott. Higher-order abstract syntax. In Proceedings of the ACM-SIGPLAN Conference on Programming Language Design and Implementation, pages 199–208. ACM Press, June 1988.Google Scholar
- 19.D.H.D. Warren. An abstract Prolog instruction set. Technical Note 309, SRI International, October 1983.Google Scholar
- 20.Philip Wickline and Dale Miller. The Terzo 1.1b implementation of λProlog. Distribution in NJ-SML source files. See http://www.cse.psu.edu/~dale/lProlog/, April 1997.