We show how the operational features of logic programming can be added as conservative extensions to
a functional base language with call by value
semantics. We will address both concurrent and
constraint logic programming.
As base language we will use a dynamically typed
language that is obtained from SML by eliminating type
declarations and static type checking. Our approach
can be extended to cover all features of Oz.
The experience with the development of Oz tells us that the outlined approach is the right base for the practical development of concurrent constraint programming languages. It avoids unnecessary duplication of concepts by reusing functional programming as core technology. Of course, it does not unify the partly incompatible theories behind functional and logic programming. They both contribute at a higher level of abstraction to the understanding of different aspects of the class of programming languages proposed here.
Download PDF Show BibTeX
Login to edit