[Prev][Next][Index][Thread]
Announcing "Lolli", An Interpreter for Linear-Logic Programming
In conjunction with the upcoming Joint International Conference and
Symposium on Logic Programming, and in particular the Workshop on
Linear Logic and Logic Programming, I am pleased to announce the first
public distribution of Lolli, an interpreter for logic programming
based on linear logic principles.
The language Lolli (named for the linear logic implication operator
"-o" called lollipop), is a full implementation of the language
described in the paper "Logic Programming in a Fragment of
Intuitionistic Linear Logic" (Josh Hodas & Dale Miller, to appear in
Information and Computation), though it differs a bit in syntax, and
has several built-in extra-logical predicates and operators.
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 which 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, 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. This last is described in the paper "Specifying
Filler-Gap Dependency Parsers in a Linear Logic Programming Language",
by Josh Hodas, to be presented at JICSLP '92.
This preliminary implementation was developed over the last year and
is based on code written by Frank Pfenning and Conal Elliot for their
paper "A Semi-Functional Implementation of a Higher-Order Logic
Programming Language" which appears in "Topics in Advanced Language
Implementation", MIT Press, Peter Lee editor. DVI files for this
paper, as well as the two papers mentioned above, are included with
the distribution.
To retrieve a copy of the Lolli system, ftp (anonymously) to
ftp.cis.upenn.edu and retrieve the file pub/Lolli/Lolli-07.tar.Z. (Be
sure to set ftp to BINARY transfer first.) This distribution includes
full ML source, along with a Makefile, as well as the papers mentioned
above and a collection of example programs. For those who do not have
SML-NJ at their site, we hope to provide pre-built binaries for a
variety of architectures. These binaries can be found on
ftp.cis.upenn.edu in the directory pub/Lolli/binaries. At present
Sparc and NeXT binaries are available. If you compile lolli on a new
architecture, please contact me so that I can make your binary
available.