Symbolic constraints for meta-logic programming

Henning Christiansen, Davide Martinenghi
Department of Computer Science
Roskilde University, P.O.Box 260, DK-4000 Roskilde, Denmark

Logic programming, with its declarative bias as well as unification and the direct representation of linguistic structures, is well qualified for meta-programming, i.e., programs working with representations of other programs as their data. However, constraint techniques seem necessary in order fully to exploit this paradigm. In the DEMOII system, the language of Constraint Handling Rules (CHR) has been used in order to provide a functionality that appears difficult to obtain without such means. For example, reversibility of a meta-interpreter, which can be obtained by means of constraints, turns it into a powerful program generator; in the same way, negation-as-failure implemented by means of constraints provides an incremental evaluation of integrity constraints. This paper focuses on the design of such constraints and their implementation by means of CHR.

Journal of Applied Artificial Intelligence, vol. 14, pp. 345–367, 2000.