lolli(ID:4029/lol004)


(named for the "lollipop" operator "-o")

Lolli is an interpreter for logic programming based on intuitionist
linear logic principles.

Based on linear logic, in which clauses can be used exactly once. All the operators of lambda- Prolog plus linear variations. Implemented in SML/NJ.


Related languages
Prolog => lolli   Extension of

References:
  • Hodas, Josh "Specifying Filler-Gap Dependency Parsers in a Linear Logic-Programming Language" view details
          in Proceedings of the 1992 Joint International Conference and Symposium on Logic Programming view details
  • Hodas, Josh "Lolli - an Extension of Lambda Prolog with Linear Context Management" view details Extract: Account
    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.
          in Workshop on the Lambda Prolog Programming Language view details
  • Hodas, Joshua S. "Lolli: An Extension of Prolog with Linear Logic Context Management" view details
          in Proceedings of the 1992 Workshop on the Prolog Programming Language, Philadelphia, Summer 1992. Dale Miller, ed. view details
  • Pfenning, Frank and Elliot, Conal "A Semi-Functional Implementation of a Higher-Order Logic Programming Language" view details
          in Peter Lee, editor, "Topics in Advanced Language Implementation", MIT Press, 1993 view details
  • Hodas, Joshua S. and Miller, Dale "Logic Programming in a Fragment of Intuitionistic Linear Logic", pp327-365 view details
          in Information and Computation, 110(2) May 1, 1994 view details
  • Hodas, Joshua S. Logic Programming in Intuitionistic Linear Logic: Theory, Design, and Implementation, University of Pennsylvania Technical Reports MS-CIS-92-28 or LINC LAB 269 view details
          in Information and Computation, 110(2) May 1, 1994 view details
  • Logic Programming in Intuitionistic Linear Logic: Theory, Design, and Implementation, by Joshua S. Hodas, Ph.D. U of Pennsylvania, May 1994 view details
          in Information and Computation, 110(2) May 1, 1994 view details
    Resources