CS-Prolog: A generalized unification based constraint solver Constraint logic programming (CLP) is a promising extension of standard PROLOG. In the article a new constraint logic programming language constraint solver PROLOG (CS-PROLOG) is presented. A new kind of unification to overcome some insufficiency in standard PROLOG is devised. Other approaches to this problem (Colmerauer’s PROLOG II and Jaffar’s PROLOG-Q) are briefly mentioned. The delay mechanism of the standard logic programming language is discussed. Capabilities of CS-PROLOG are shown by example of solving linear arithmetic equations. CS-PROLOG uses four rules: variable elimination, tree rewriting, equation anteposition and back substitution. A domain concept as introduced by Dincbas is explained and generalized unification based on it is introduced. Extension to real arithmetic is given: here the domain concept can be viewed as inequation. CS-PROLOG is implemented in PROLOG. This implementation is smaller (1,500 lines) than CLP system implemented in C (12,000 lines) and reasonably efficient.

This software is also peer reviewed by journal TOMS.

Keywords for this software

Anything in here will be replaced on browsers that support the canvas element