Search code examples
prologconstraint-programminglogic-programmingclojure-core.logicminikanren

Modelling Constraint Logic Programs (for analysis)


Object-Oriented programs can be modelled by different models such as Automata, Process Algebras, Petri Nets or UML. Some of these models can be used to perform various kind of analysis to spot problem in performance or design.

I am studying about logic programming and wondered if there is such kind of models for CLP? How do you do analysis of CLP programs?


Solution

  • The two approaches that I have seen used the most are abstract interpretation and evolving algbras (aka Abstract State Machines). Egon Boerger published a formal definition of Prolog and a correctnes proof of the Warren Abstract Machine using evolving algebras. Pure logic programming languages can just be modelled directly in logic.