Skip to main content

A constraint logic programming shell

  • Constraint Logic Programming
  • Conference paper
  • First Online:
Programming Language Implementation and Logic Programming (PLILP 1990)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 456))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. H. Beringer and F. Porcher, “A Relevant Scheme for Prolog Extensions: CLP(Conceptual Theory)”, Procs. ICLP 89, Lisbon, June 1989, pp. 131–148.

    Google Scholar 

  2. B. Char, K. Geddes, G. Gonnet, S. Watt, Maple User's Guide, WATCOM Publications, 1985, Waterloo, Ontario.

    Google Scholar 

  3. A. Colmerauer, “PROLOG II — Reference Manual and Theoretical Model”, Internal Report, Groupe Intelligence Artificielle, Université Aix-Marseille II (1982).

    Google Scholar 

  4. 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.)

    Google Scholar 

  5. J. Crossley, P. Lim, P. Stuckey, “Interface Logic Programming”, Australian Computer Journal, 21(2) May 1989, pp 49–55.

    Google Scholar 

  6. A. Hearn, “The REDUCE User's Manual — Version 3.3”, Rand Publications, CP78, July 1987.

    Google Scholar 

  7. M. Dincbas, P. van Hentenryck, H. Simonis, A. Aggoun, T. Graf, F. Berthier, “The Constraint Logic Programming Language CHIP”, Procs. FGCS 88, Tokyo, 1988.

    Google Scholar 

  8. N. Heintze, S. Michaylov, P. Stuckey, “CLP(ℛ) and some Electrical Engineering problems”, Procs. ICLP 87, Melbourne, May 1987, pp. 675–703.

    Google Scholar 

  9. P. van Hentenryck and M. Dincbas, “Forward Checking in Logic Programming”, Procs. ICLP 87, Melbourne, May 1987, pp. 229–256.

    Google Scholar 

  10. T. Hickey, “CLP* and Constraint Abstraction”, Procs. LICS 89, Chicago, June 1989.

    Google Scholar 

  11. J. Jaffar, S. Michaylov, P. Stuckey, R. Yap, “The CLP(ℛ) Language and System” IBM Technical Report, to appear.

    Google Scholar 

  12. J. Jaffar, J-L. Lassez, “Constraint Logic Programming”, Procs. POPL 87, Munich, January 1987.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. S. Morishita, M. Numao, S. Hirose, “Symbolical construction of truth value domain for logic program”, Procs. ICLP 87, Melbourne, May 87, pp. 533–555.

    Google Scholar 

  15. G. Nelson, “Techniques for Program Verification”, Xerox Palo Alto Research Center CSL-81-10 (1981).

    Google Scholar 

  16. G. Nelson, D. Oppen, “Simplification by cooperating decision procedures”, TOPLAS1(2), April 1980, pp. 245–257.

    Google Scholar 

  17. K. Sakai, A. Aiba, “Introduction to CAL”, ICOT Technical Report, December 1987.

    Google Scholar 

  18. C. Walinsky, “CLP(Σ*): Constraint Logic Programming with Regular Sets”, Procs. ICLP 89, Lisbon, June 1989, pp. 181–198.

    Google Scholar 

  19. D.H.D. Warren, “An Abstract Prolog Instruction Set”, Technical Note 309, Artificial Intelligence Center, SRI International, Menlo Park, California, October 1983.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Pierre Deransart Jan Maluszyński

Rights and permissions

Reprints 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

Publish with us

Policies and ethics