A Constraint Logic Programming Shell

The Constraint Logic Programming (CLP) scheme generalizes the model-theoretic and operational models of logic programming to include constraints over particular problem domains (structures). The scheme explicitly separates logical inference steps and structure satisfiability questions. The Constraint Logic Programming Shell (CLPS) described in this paper utilizes this separation to define a structure independent inference engine. This engine forms the basis for a CLP system that only requires a constraint solver for the desired structure to form a complete CLP implementation. This contrasts with current implementations of constraint logic programming languages which have a fixed structure e.g. languages such as CLP(ℛ), PROLOG-III and CHIP. They do not completely separate the inference engine and constraint solver since they were constructed with a specific structure in mind. Thus constructing a new CLP system from such a system involves substantial work.