A modular architecture for constraint logic programming

Jin‐Kao Hao, Jean-Jacques Chabrier · 1991

Constraint logic programming (CLP) is a powerful programming paradigm combining constraint solving and logic programming.Any CLP system must deal with logical inferences and constraint solving.In existing CLP systems, these two different aspects are not well separated.These systems are built in a "tightly coupled" manner, i.e. different functionalities are integrated into a "blackbox" via somewhat non-trivial interfaces often causing problems such as complex implementation, unextensibility, communication overhead and so on.In this paper, we analyse the very reasons for these problems and then propose a modular architecture for CLP system building based on some software engineering principles.The proposed approach separates explicitly logical inferences and constraint solving.We show that the separation is possible via a partial evaluation phase.The separation allows us to have a global view about the set of constraints as early as possible.This separation facilitates efficient implementations and allows a system built in such a way to be extended.

Read the paper · More papers on PaperTik