ntm1169@dsacg1.UUCP (Mott Given) (09/22/89)
How does lambda Prolog differ from standard Prolog? What advantages does it offer? What references are available describing it? -- Mott Given @ Defense Logistics Agency Systems Automation Center, DSAC-TMP, Bldg. 27-1, P.O. Box 1605, Columbus, OH 43216-5002 INTERNET: mgiven@dsac.dla.mil UUCP: ntm1169@dsacg1.uucp Phone: 614-238-9431 AUTOVON: 850-9431 FAX: 614-238-3214 I speak for myself
dale@linc.cis.upenn.edu (Dale Miller) (09/23/89)
In article <1534@dsacg1.UUCP> ntm1169@dsacg1.UUCP (Mott Given) writes: >How does lambda Prolog differ from standard Prolog? What advantages does it >offer? What references are available describing it? The logic programming language, lambda Prolog, extensions Prolog by containing the following language features: o polymorphic typing (similar to that in ML) o higher-order programming (via quantification over predicates) o lambda-term as data structures o unification of simply typed lambda-terms (sometimes called 'higher-order unification') o modules, lexical scopes, abstract data types o universally quantified goals o implicational goal for hypothetical reasoning Most of these features are integrated into a single logical system with properties that have been studied over the past few years. There are several papers in conferences and journals related to lambda Prolog. The best place to start is the overview paper: G. Nadathur and D. Miller, An Overview of lambda Prolog, Fifth International Conference on Logic Programming, eds. R. Kowalski and K. Bowen, MIT Press, 1988, 810 -- 827. There is an interpreter LP2.7 written in C-Prolog and Quintus Prolog. It does not implement all the features above but can be used to learn several aspects of the language. Send mail to Gopalan Nadathur (gopalan@cs.duke.edu) for getting a copy. A new, Common Lisp version implementation, named eLP, will be available shortly and should be announced on this news group. That implementation is being done at Carnegie Mellon University. Send mail to Frank Pfenning (fp@cs.cmu.edu) for more information. Below is a list of papers describing aspects of lambda Prolog or describes applications using it. The language has been used to provide interesting programs in the areas of theorem proving, program transformation, and natural language. ------------------- A. Felty, Implementing theorem provers in a higher-order logic programming language, Ph. D. dissertation, University of Pennsylvania, August 1989. A. Felty and D. Miller, Specifying Theorem Provers in a Higher-Order Logic Programming Language, Proceedings of the Ninth International Conference on Automated Deduction, Argonne, IL, 23 -- 26 May 1988, eds. E. Lusk and R. Overbeek, Springer-Verlag Lecture Notes in Computer Science, Vol. 310, 61 -- 80. J. Hannan and D. Miller, Uses of Higher-Order Unification for Implementing Program Transformers, Fifth International Conference and Symposium on Logic Programming, ed. K. Bowen and R. Kowalski, MIT Press, 1988, 942 -- 959. D. Miller, A Logical Analysis of Modules in Logic Programming, Journal of Logic Programming 6 (1989) 79 -- 108. D. Miller, Lexical Scoping as Universal Quantification, Sixth International Logic Programming Conference, Lisbon, June 1989, eds. G. Levi and M. Martelli, MIT Press, 268 -- 283. D. Miller and G. Nadathur, Higher-Order Logic Programming, Proceedings of the Third International Logic Programming Conference, London, June 1986, ed. E. Shapiro, Springer-Verlag, 448 -- 462. D. Miller and G. Nadathur, A Logic Programming Approach to Manipulating Formulas and Programs, Proceedings of the IEEE Fourth Symposium on Logic Programming, IEEE Press, 1987, 379 -- 388. G. Nadathur, A Higher-Order Logic as the Basis for Logic Programming, Ph. D. dissertation, University of Pennsylvania, May 1987. F. Pfenning, Partial Polymorphic Type Inference and Higher-Order Unification, Proceedings of the 1988 ACM Conference on Lisp and Functional Programming, ed. Jerome Chailloux, ACM Press, 153 -- 163. F. Pfenning and C. Elliott, Higher-Order Abstract Syntax, Proceedings of the ACM-SIGPLAN Conference on Programming Language Design and Implementation, ACM Press, 1988, 199 -- 208.