Electrical Engineering
      and Computer Sciences

Electrical Engineering and Computer Sciences

COLLEGE OF ENGINEERING

UC Berkeley

The APPLOG LANGUAGE: PROLOG vs. LISP -- if you can't fight them join them

Shimon Cohen

EECS Department
University of California, Berkeley
Technical Report No. UCB/CSD-84-179
May 1984

http://www.eecs.berkeley.edu/Pubs/TechRpts/1984/CSD-84-179.pdf

We discuss the virtues of PROLOG in comparison to LISP, we come to the conclusion that: "If you can't fight them, JOIN them". We propose, as a solution, the APPLOG language which is a mixture of LISP and PROLOG. APPLOG is embedded within the PROLOG language and thus the facilities of PROLOG can be used through a simple goal function.

APPLOG is an applicative language where functions are applied to arguments. APPLOG variables are compatible with PROLOG variables and serve as a mean for data transfer between APPLOG and PROLOG. APPLOG supports lambda and nlambda functions definitions and one-to-one, one-to-many and mixed binding mechanism like INTERLISP.

The main advantage of APPLOG is the simple integration of LISP and PROLOG into ONE powerful language which hopefully incorporates the best features of both languages. We also extended APPLOG to a simple relational database query language which is similar to Query-by-example and includes: Aggregates and Grouping.

We provide the full listing of APPLOG interpreter including: pretty-print, load, trace, toploop, history, autoload, Interface Interface to relational database.

APPLOG has the following advantages over traditional LISP languages: (1) Pattern directed invocation. (2) Call by reference. (3) Interface to PROLOG as a database query language. (4) Operators (infix, prefix, and postfix). (5) Back-tracking. (6) Generators.


BibTeX citation:

@techreport{Cohen:CSD-84-179,
    Author = {Cohen, Shimon},
    Title = {The APPLOG LANGUAGE: PROLOG vs. LISP -- if you can't fight them join them},
    Institution = {EECS Department, University of California, Berkeley},
    Year = {1984},
    Month = {May},
    URL = {http://www.eecs.berkeley.edu/Pubs/TechRpts/1984/5960.html},
    Number = {UCB/CSD-84-179},
    Abstract = {We discuss the virtues of PROLOG in comparison to LISP, we come to the conclusion that: "If you can't fight them, JOIN them". We propose, as a solution, the APPLOG language which is a mixture of LISP and PROLOG.  APPLOG is embedded within the PROLOG language and thus the facilities of PROLOG can be used through a simple goal function.  <p>  APPLOG is an applicative language where functions are applied to arguments.  APPLOG variables are compatible with PROLOG variables and serve as a mean for data transfer between APPLOG and PROLOG.  APPLOG supports lambda and nlambda functions definitions and one-to-one, one-to-many and mixed binding mechanism like INTERLISP.  <p>  The main advantage of APPLOG is the simple integration of LISP and PROLOG into ONE powerful language which hopefully incorporates the best features of both languages.  We also extended APPLOG to a simple relational database query language which is similar to Query-by-example and includes: Aggregates and Grouping.  <p>  We provide the full listing of APPLOG interpreter including: pretty-print, load, trace, toploop, history, autoload, Interface Interface to relational database.  <p>  APPLOG has the following advantages over traditional LISP languages: (1) Pattern directed invocation.  (2) Call by reference.  (3) Interface to PROLOG as a database query language.  (4) Operators (infix, prefix, and postfix).  (5) Back-tracking.  (6) Generators.}
}

EndNote citation:

%0 Report
%A Cohen, Shimon
%T The APPLOG LANGUAGE: PROLOG vs. LISP -- if you can't fight them join them
%I EECS Department, University of California, Berkeley
%D 1984
%@ UCB/CSD-84-179
%U http://www.eecs.berkeley.edu/Pubs/TechRpts/1984/5960.html
%F Cohen:CSD-84-179