The CLP( ℛ ) language and system
- 1 May 1992
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 14 (3) , 339-395
- https://doi.org/10.1145/129393.129398
Abstract
The CLPR programming language is defined, its underlyingphilosophy and programming methodology are discussed, importantimplementation issues are explored in detail, and finally, a prototypeinterpreter is described.CLPRis designed to be an instance of the Constraint LogicProgramming Scheme, a family of rule-based constraint programminglanguages defined by Jaffar and Lassez. The domain of computationRof this particular instance is the algebraic structureconsisting of uninterpreted functors over real numbers. An importantproperty of CLPRis that the constraints are treated uniformly in thesense that they are used to specify the input parameters to a program,they are the only primitives used in the execution of a program, andthey are used to describe the output of a program.Implementation of a CLP language, and of CLPRin particular, raises new problems in the design of aconstraint-solver. For example, the constraint solver must beincremental in the sensethat solving additional constraints must not entail the resolving of oldconstraints. In our system, constraints are filtered through aninference engine, an engine/solver interface, an equation solver and aninequality solver. This sequence of modules reflects a classificationand prioritization of the classes of constraints. Modules solving higherpriority constraints are isolated from the complexities of modulessolving lower priority constraints. This multiple-phase solving ofconstraints, together with a set of associated algorithms, gives rise toa practical system.Keywords
This publication has 11 references indexed in Scilit:
- An introduction to Prolog IIICommunications of the ACM, 1990
- Mockingbird: A logical methodology for testingThe Journal of Logic Programming, 1990
- CAL: A theoretical background of constraint logic programming and its applicationsJournal of Symbolic Computation, 1989
- Constraint Logic Programming and Option TradingIEEE Expert, 1987
- Constraint and declarative languages for engineering applications: The TK!Solver contributionProceedings of the IEEE, 1985
- The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation LaboratoryACM Transactions on Programming Languages and Systems, 1981
- Propagation of constraints applied to circuit synthesisInternational Journal of Circuit Theory and Applications, 1980
- ConstraintsPublished by Association for Computing Machinery (ACM) ,1979
- New Finite Pivoting Rules for the Simplex MethodMathematics of Operations Research, 1977
- On fourier’s analysis of linear inequality systemsPublished by Springer Nature ,1974