An optimizing compiler for CLP(R)

Andrew D. Kelly, Andrew Macdonald, Kim Marriott, Harald Søndergaard, Peter J. Stuckey, R. H.C. Yap

Research output: Chapter in Book/Report/Conference proceedingConference PaperResearchpeer-review

10 Citations (Scopus)


The considerable expressive power and flexibility gained by combining constraint programming with logic programming is not without cost. Implementations of constraint logic programming (CLP) languages must include expensive constraint solving algorithms tailored to specific domains, such as trees, Booleans, or real numbers. The performance of many current CLP compilers and interpreters does not encourage the widespread use of CLP. We outline an optimizing compiler for CLP(R), a CLP language which extends Prolog by allowing linear arithmetic constraints. The compiler uses sophisticated global analyses to determine the applicability of different program transformations. Two important components of the compiler, the analyzer and the optimizer, work in continual interaction in order to apply semantics-preserving transformations to the source program. A large suite of transformations are planned. Currently the compiler applies three powerful transformations, namely "solver bypass", "dead variable elimination" and "nofail constraint detection". We explain these optimizations and their place in the overall compiler design and show how they lead to performance improvements on a set of benchmark programs.

Original languageEnglish
Title of host publicationPrinciples and Practice of Constraint Programming — CP 1995 - 1st International Conference, CP 1995, Proceedings
EditorsUgo Montanari, Francesca Rossi
Number of pages18
ISBN (Print)3540602992, 9783540602996
Publication statusPublished - 1 Jan 1995
EventInternational Conference on Principles and Practice of Constraint Programming 1995 - Cassis, France
Duration: 19 Sep 199522 Sep 1995
Conference number: 1st

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349


ConferenceInternational Conference on Principles and Practice of Constraint Programming 1995
Abbreviated titleCP 1995

Cite this