THE CLP(R) LANGUAGE AND SYSTEM

被引:190
作者
JAFFAR, J
MICHAYLOV, S
STUCKEY, PJ
YAP, RHC
机构
[1] CARNEGIE MELLON UNIV, SCH COMP SCI, PITTSBURGH, PA 15213 USA
[2] UNIV MELBOURNE, DEPT COMP SCI, PARKVILLE, VIC 3052, AUSTRALIA
[3] MONASH UNIV, DEPT COMP SCI, CLAYTON, VIC 3168, AUSTRALIA
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 1992年 / 14卷 / 03期
关键词
ALGORITHMS; LANGUAGES; CONSTRAINTS; LOGIC PROGRAMMING;
D O I
10.1145/129393.129398
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The CLP(R) programming language is defined, its underlying philosophy and programming methodology are discussed, important implementation issues are explored in detail, and finally, a prototype interpreter is described. CLP(R) is designed to be an instance of the Constraint Logic Programming Scheme, a family of rule-based constraint programming languages defined by Jaffar and Lassez. The domain of computation R of this particular instance is the algebraic structure consisting of uninterpreted functors over real numbers. An important property of CLP(R) is that the constraints are treated uniformly in the sense that they are used to specify the input parameters to a program, they are the only primitives used in the execution of a program, and they are used to describe the output of a program. Implementation of a CLP language, and of CLP(R) in particular, raises new problems in the design of a constraint-solver. For example, the constraint solver must be incremental in the sense that solving additional constraints must not entail the resolving of old constraints. In our system, constraints are filtered through an inference engine, an engine/solver interface, an equation solver and an inequality solver This sequence of modules reflects a classification and prioritization of the classes of constraints. Modules solving higher priority constraints are isolated from the complexities of modules solving lower priority constraints. This multiple-phase solving of constraints, together with a set of associated algorithms, gives rise to a practical system.
引用
收藏
页码:339 / 395
页数:57
相关论文
共 43 条
[1]  
[Anonymous], 14TH P ACM S PRINC P
[2]  
Bland R. G., 1977, Mathematics of Operations Research, V2, P103, DOI 10.1287/moor.2.2.103
[3]  
BORNING A, 1981, ACM T PROGR LANG SYS, V3, P252
[4]  
Collins G. E., 1982, Computing (Supplementum), P79
[5]  
COLMERAUER A, 1987, BYTE, V12, P177
[6]   AN INTRODUCTION TO PROLOG-III [J].
COLMERAUER, A .
COMMUNICATIONS OF THE ACM, 1990, 33 (07) :69-90
[7]  
COLMERAURE A, 1982, PROLOG II REFERENCE
[8]  
DINCBAS M, 1988, 2ND P INT C 5TH GEN, P249
[9]  
Duf ~n J. R., 1974, MATH PROGRAM STUD, V1, P71
[10]   MOCKINGBIRD - A LOGICAL METHODOLOGY FOR TESTING [J].
GORLICK, MM ;
KESSELMAN, CF ;
MAROTTA, DA ;
PARKER, DS .
JOURNAL OF LOGIC PROGRAMMING, 1990, 8 (1-2) :95-119