CS-Prolog

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.