SHORT%hp-labs.csnet@csnet-relay.arpa (04/19/84)
[Forwarded from the SRI-AI bboard by Laws@SRI-AI.] JOSEPH A. GOGUEN SRI International COMBINING LOGIC AND FUNCTIONAL PROGRAMMING -- WITH EQUALITY, TYPES, MODULES AND GENERICS TOO! Hewlett Packard Computer Colloquium - April 26, 1984 This joint work with J. Meseguer shows how to extend the paradigm of logic programming with some features that are prominent in current programming methodology, without sacrificing logical rigor or efficient implementation. The first and most important of these features is functional programming; full logical equality provides an elegant way to combine the power of Prolog (with its logical variables, pattern matching and automatic backtracking) with that of functional programming (supporting functions and their composition, as well as strong typing and user definable abstract data types). An interesting new feature that emerges here is a complete algorithm for solving equations that contain logical variables; this algorithm uses "narrowing", a technique from the theory of rewrite rules. The underlying logical system here is many-sorted Horn clause logic with equality. A useful refinement is "subsorts", which can be seen as an ordering relation on the set of sorts (usually called "types") of data. Finally, we provide generic modules by using methods developed in the specification language Clear. These features are all embedded in a language call Eqlog; we illustrate them with a program for the well-known Missionaries and Cannibals problem. Thursday, April 26, 1984 4:00 p.m. Hewlett Packard Laboratories Computer Research Center 1501 Page Mill Road Palo Alto, CA 94304 5M Conference Room