CMU Artificial Intelligence Repository
Home INFO Search FAQs Repository Root

Lolli: An interpreter for linear logic programming.

lang/prolog/impl/lp/lolli/
Lolli is an interpreter for logic programming based on intuitionist linear logic principles. Lolli, named for the linear logic implication operator "-o" called lollipop, is a full implementation of the language described in the Hodas & Miller paper "Logic Programming in a Fragment of Intuitionistic Linear Logic", though it differs a bit in syntax, and has several built-in extra-logical predicates and operators. The logic underlying Lolli can be viewed as a refinement of the the Hereditary Harrop formulas of Lambda-Prolog. All the operators (though not the higher order unification) of Lambda-Prolog are supported, but with the addition of linear variations. Thus a Lolli program distinguishes between clauses that can be used as many, or as few, times as desired, and those that must be used exactly once. These features have been used to provide a perspicuous, logical implementation of a number of example problems, including object-oriented programming with mutable state and information hiding, database update, and term rewriting. Lolli has also been used as the setting for the development of a filler-gap dependency parser for natural language processing (see Hodas's JICSLP-92 paper). The preliminary implementation of Lolli is based on code written by Pfenning and Elliot for their paper "A Semi-Functional Implementation of a Higher-Order Logic Programming Language". The system is written in Standard ML of New Jersey, and the parser and lexer were built using the parser-generator (MLYACC) and lexical-analyzer-generator (MLLEX) distributed with that system. Though source files for the parser and lexer have been included, the parser and lexer have already been built, so you do not need access to the MLYACC or MLLEX.
See Also: 

   lang/prolog/impl/prolog/elp/
Origin:   

   ftp.cis.upenn.edu:pub/Lolli/  [130.91.6.8]

Version: 7.01 (1-DEC-92) Requires: Standard ML of New Jersey (SML-NJ 0.75) Ports: Sparc and NeXT ready-made binaries are available. Copying: If you're using the system, please send the authors a short e-mail message, especially if you wish to be kept informed of updates. CD-ROM: Prime Time Freeware for AI, Issue 1-1 Author(s): Josh Hodas and Dale Miller Contact: Josh Hodas or Computer Science Department Harvey Mudd College Claremont, CA 91711 Tel: 909-621-8650 Keywords: Authors!Hodas, Authors!Miller.Dale, Interpreters!Prolog, Linear Logic, Lolli, OOP!Prolog, Programming Languages!Logic Programming, Prolog!Implementations References: Several background papers and a collection of example programs are included in the distribution, including: Frank Pfenning and Conal Elliot, "A Semi-Functional Implementation of a Higher-Order Logic Programming Language", in Peter Lee, editor, "Topics in Advanced Language Implementation", MIT Press, 1993. [This paper presents an excellent tutorial on implementing interpreters for Prolog-like languages in a functional setting. It is also available from CMU as Ergo Report 89-080.] Josh Hodas and Dale Miller, "Logic Programming in a Fragment of Intuitionistic Linear Logic", to appear in Information and Computation in late Spring 1994. [This paper provides extensive background on the motivations and proof theory of the language. It is an extended version of their LICS-91 paper.] Josh Hodas, "Lolli - an Extension of Lambda Prolog with Linear Context Management", from the 1992 Workshop on the Lamda Prolog Programming Language. [This short paper can be used as a quick introduction to Lolli syntax, and the language's relationship to Lambda Prolog.] Josh Hodas, "Specifying Filler-Gap Dependency Parsers in a Linear Logic-Programming Language", to appear in the Proceedings of the 1992 Joint International Conference and Symposium on Logic Programming.
Last Web update on Mon Feb 13 10:34:39 1995
AI.Repository@cs.cmu.edu