CMU Artificial Intelligence Repository
Lolli: An interpreter for linear logic programming.
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
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.
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
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
Authors!Hodas, Authors!Miller.Dale, Interpreters!Prolog,
Linear Logic, Lolli, OOP!Prolog,
Programming Languages!Logic Programming,
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
Josh Hodas, "Lolli - an Extension of Lambda Prolog with Linear Context
Management", from the 1992 Workshop on the Lamda Prolog Programming
[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