Affordable Access

Publisher Website

Logic programming with functions and predicates: The language Babel

Authors
Journal
The Journal of Logic Programming
0743-1066
Publisher
Elsevier
Publication Date
Volume
12
Issue
3
Identifiers
DOI: 10.1016/0743-1066(92)90024-w
Disciplines
  • Computer Science
  • Design
  • Linguistics
  • Mathematics

Abstract

Abstract We investigate the experimental programming language BABEL, designed to achieve integration of functional programming (as embodied in HOPE, Standard ML, or MIRANDA) and logic programming (as embodied in PROLOG) in a simple, flexible, and mathematically well-founded way. The language relies on a constructor discipline, well suited to accommodate PROLOG terms and HOPE-like patterns. From the syntactical point of view, BABEL combines pure PROLOG with a first order functional notation. On the other side, the language uses narrowing as the basis of a lazy reduction semantics which embodies both rewriting and SLD resolution and supports computation with potentially infinite data structures. There is also a declarative semantics, based on Scott domains, which provides a notion of least Herbrand model for BABEL programs. We develop both semantics and prove the existence of least Herbrand models, as well as a soundness result for the reduction semantics w.r.t. the declarative one. We also sketch a completeness result for the reduction semantics and illustrate the features of the language through some programming examples.

There are no comments yet on this publication. Be the first to share your thoughts.