[comp.lang.prolog] Lambda Prolog

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.