• DocumentCode
    3106814
  • Title

    Common Lisp relations: an extension of Lisp for logic programming

  • Author

    Thrift, Philip

  • Author_Institution
    Texas Instrum. Comput. Sci. Center, Dallas, TX, USA
  • fYear
    1988
  • fDate
    9-13 Oct 1988
  • Firstpage
    332
  • Lastpage
    337
  • Abstract
    The author presents a set of relational constructs that support logic programming in the Common Lisp framework. These constructs support locally defined and first-class relations, an interface between function and relation-calling logical variables as first-class Lisp objects, and the ability to define relations over Common Lisp structures. The relational programming constructs are amenable to standard Prolog compilation techniques, thus making possible high-speed performance. A relation is an executable specification defined in terms of a sequence of clause-expressions. Each clause-expression specifies a list of argument patterns that determine the selection and local bindings of the clause as well as a sequence of goals that must be satisfied for the clause to succeed. Sequences of clause-expressions are used for defining relations and single lambda-expressions are used for defining functions. As an analog to the usual function-calling execution mode of Common Lisp, a relation-calling mechanism is provided. The semantics of passing values between relations and functions is described
  • Keywords
    LISP; logic programming; Common Lisp; argument patterns; clause-expressions; executable specification; function-calling execution mode; lambda-expressions; logic programming; relation-calling mechanism; relational constructs; semantics; Computer science; Control systems; Functional programming; Instruments; Logic programming; Object oriented modeling; Programming profession; Runtime; Terminology;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Computer Languages, 1988. Proceedings., International Conference on
  • Conference_Location
    Miami Beach, FL
  • Print_ISBN
    0-8186-0874-9
  • Type

    conf

  • DOI
    10.1109/ICCL.1988.13081
  • Filename
    13081