Abstract
The Constraint Logic Programming (CLP) scheme generalizes the model-theoretic and operational models of logic programming to include constraints over particular problem domains (structures). The scheme explicitly separates logical inference steps and structure satisfiability questions. The Constraint Logic Programming Shell (CLPS) described in this paper utilizes this separation to define a structure independent inference engine. This engine forms the basis for a CLP system that only requires a constraint solver for the desired structure to form a complete CLP implementation. This contrasts with current implementations of constraint logic programming languages which have a fixed structure e.g. languages such as CLP(ℛ), PROLOG-III and CHIP. They do not completely separate the inference engine and constraint solver since they were constructed with a specific structure in mind. Thus constructing a new CLP system from such a system involves substantial work.
The shell is aimed at providing rapid prototyping of CLP systems. To allow CLPS systems to take advantage of the incremental nature of constraint solving in CLP, three interfaces for attaching solvers are described. Each interface corresponds to a different level of solver suitability for incremental constraint solving. Pre-existing solvers are supported through the first two interfaces, while the third supports custom-built incremental solvers.
Research partially supported under IBM Research Agreement 15760046.
Preview
Unable to display preview. Download preview PDF.
References
H. Beringer and F. Porcher, “A Relevant Scheme for Prolog Extensions: CLP(Conceptual Theory)”, Procs. ICLP 89, Lisbon, June 1989, pp. 131–148.
B. Char, K. Geddes, G. Gonnet, S. Watt, Maple User's Guide, WATCOM Publications, 1985, Waterloo, Ontario.
A. Colmerauer, “PROLOG II — Reference Manual and Theoretical Model”, Internal Report, Groupe Intelligence Artificielle, Université Aix-Marseille II (1982).
A. Colmerauer, “Final Specifications for PROLOG-III”, Manuscript: ESPRIT Reference Number P1219(1106), February 1988. (See also “Opening the PROLOG-III Universe”, BYTE Magazine, August 1987.)
J. Crossley, P. Lim, P. Stuckey, “Interface Logic Programming”, Australian Computer Journal, 21(2) May 1989, pp 49–55.
A. Hearn, “The REDUCE User's Manual — Version 3.3”, Rand Publications, CP78, July 1987.
M. Dincbas, P. van Hentenryck, H. Simonis, A. Aggoun, T. Graf, F. Berthier, “The Constraint Logic Programming Language CHIP”, Procs. FGCS 88, Tokyo, 1988.
N. Heintze, S. Michaylov, P. Stuckey, “CLP(ℛ) and some Electrical Engineering problems”, Procs. ICLP 87, Melbourne, May 1987, pp. 675–703.
P. van Hentenryck and M. Dincbas, “Forward Checking in Logic Programming”, Procs. ICLP 87, Melbourne, May 1987, pp. 229–256.
T. Hickey, “CLP* and Constraint Abstraction”, Procs. LICS 89, Chicago, June 1989.
J. Jaffar, S. Michaylov, P. Stuckey, R. Yap, “The CLP(ℛ) Language and System” IBM Technical Report, to appear.
J. Jaffar, J-L. Lassez, “Constraint Logic Programming”, Procs. POPL 87, Munich, January 1987.
C.S. Mellish, “An Alternative to Structure Sharing in the implementation of a PROLOG interpreter”, in Logic Programming, K.L. Clark and S-A Tärnlund (eds), Academic Press, 1982, London.
S. Morishita, M. Numao, S. Hirose, “Symbolical construction of truth value domain for logic program”, Procs. ICLP 87, Melbourne, May 87, pp. 533–555.
G. Nelson, “Techniques for Program Verification”, Xerox Palo Alto Research Center CSL-81-10 (1981).
G. Nelson, D. Oppen, “Simplification by cooperating decision procedures”, TOPLAS1(2), April 1980, pp. 245–257.
K. Sakai, A. Aiba, “Introduction to CAL”, ICOT Technical Report, December 1987.
C. Walinsky, “CLP(Σ*): Constraint Logic Programming with Regular Sets”, Procs. ICLP 89, Lisbon, June 1989, pp. 181–198.
D.H.D. Warren, “An Abstract Prolog Instruction Set”, Technical Note 309, Artificial Intelligence Center, SRI International, Menlo Park, California, October 1983.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1990 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lim, P., Stuckey, P.J. (1990). A constraint logic programming shell. In: Deransart, P., Maluszyński, J. (eds) Programming Language Implementation and Logic Programming. PLILP 1990. Lecture Notes in Computer Science, vol 456. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0024177
Download citation
DOI: https://doi.org/10.1007/BFb0024177
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-53010-7
Online ISBN: 978-3-540-46298-9
eBook Packages: Springer Book Archive