zbMATH — the first resource for mathematics

Logic programs with external procedures. (English) Zbl 0832.68012
Apt, K. R. (ed.) et al., Logic programming languages. Constraints, functions, and objects. London: MIT Press. 21-48 (1993).
Summary: We present a clean approach to integrating logic programs with functional procedures written in other programming languages. Many existing logic programming systems allow for use of such external procedures in logic programs. In these systems the integration is achieved on the level of implementation so that the integrated programs have no declarative semantics. Our integrated programs have a declarative semantics and a sound operational semantics. The declarative semantics is constructed by viewing the integrated programs as equational logic programs. To define the operational semantics a special kind of unification, called \(S\)- unification, is introduced. The operational semantics is based on an extension of SLD-resolution that employs \(S\)-unification and a concept of delay. The operational semantics is sound but incomplete with respect to the declarative semantics. The incompleteness is a consequence of our general assumptions about the nature of the external procedures. However, the operational semantics is complete for a restricted class of programs. The paper also presents a prototype implementation of GAPLog, a language incorporating these ideas.
For the entire collection see [Zbl 0831.68011].
68N17 Logic programming