A method for translating CLP(R) rules into objects

A method translating CLP(R) rules into object classes of OOP is presented. Operationally, the original inference process is replaced by simple object invocation. Backtracking is accomplished by a while loop in a class member function. Mathematical constraints are collected incrementally when corresponding constraint objects are invoked. In this manner, mathematical models composed of such constraints can also be formed dynamically along the way of object invocation. During execution, objects of are created and the communications among them are through the message passing scheme. After the translation, there is no distinctions between rules and ordinary procedural functions because they are all the same in the form of classes. Therefore, powerful and efficient computational procedures, such as mathematical solvers, can be easily integrated with the original reasoning process so that traditional logic programs which are intelligent but less efficient can be equipped with powerful procedures to upgrade efficiency. Moreover, because of the rich resources on the OOP platform nowadays, the translation process also greatly increases the flexibility and portability of a CLP(R) system.

[1]  Morris Krieger,et al.  The C Primer , 1982 .

[2]  J. M. Lin Issues on deterministic transformation of logic-based program specification , 1990, [1990] Proceedings of the 2nd International IEEE Conference on Tools for Artificial Intelligence.

[3]  Michael J. Maher,et al.  Foundations of Deductive Databases and Logic Programming , 1988 .

[4]  Michael R. Genesereth,et al.  Logical foundations of artificial intelligence , 1987 .

[5]  Hsiao-Rong Tyan,et al.  3-D structure modeling via constraint resolution , 1991, [Proceedings] Third International Conference on Tools for Artificial Intelligence - TAI 91.

[6]  Roland H. C. Yap,et al.  The CLP( R ) language and system , 1992, TOPL.

[7]  Joxan Jaffar,et al.  Constraint logic programming , 1987, POPL '87.

[8]  Alain Colmerauer,et al.  Opening the Prolog III universe , 1987 .

[9]  Jack Minker Foundations of deductive databases and logic programming , 1988 .

[10]  Lawrence J. Henschen,et al.  Compiling recursive Prolog programs with list structure into procedural languages , 1991, [1991] Proceedings The Fifteenth Annual International Computer Software & Applications Conference.