Hostname: page-component-cd9895bd7-8ctnn Total loading time: 0 Render date: 2024-12-25T04:51:27.809Z Has data issue: false hasContentIssue false

ECLiPSe – From LP to CLP

Published online by Cambridge University Press:  12 September 2011

JOACHIM SCHIMPF
Affiliation:
Monash University, Melbourne, and Coninfer Ltd, London (e-mail: [email protected])
KISH SHEN
Affiliation:
Independent Consultant, London, UK (e-mail: [email protected])

Abstract

ECLiPSe is a Prolog-based programming system, aimed at the development and deployment of constraint programming applications. It is also used for teaching most aspects of combinatorial problem solving, for example, problem modelling, constraint programming, mathematical programming and search techniques. It uses an extended Prolog as its high-level modelling and control language, complemented by several constraint solver libraries, interfaces to third-party solvers, an integrated development environment and interfaces for embedding into host environments. This paper discusses language extensions, implementation aspects, components, and tools that we consider relevant on the way from Logic Programming to Constraint Logic Programming.

Type
Regular Papers
Copyright
Copyright © Cambridge University Press 2011

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Aggoun, A. and Beldiceanu, N. 1990. Time stamps techniques for the trailed data in constraint logic programming systems. In SPLT'90, 8ème Séminaire Programmation en Logique, 16-18 mai 1990, Bourgault, S. and Dincbas, M., Eds. Trégastel, France, 487510.Google Scholar
Appleby, K., Carlsson, M., Haridi, S. and Sahlin, D. 1986. Garbage Collection for Prolog Based on WAM. Technical Report R86009B, Swedish Institute of Computer Science, Kista, Sweden.Google Scholar
Apt, K. R. and Wallace, M. 2007. Constraint Logic Programming Using ECLiPSe. Cambridge University Press, Cambridge, UK.Google Scholar
Barklund, J. and Bevemyr, J. 1993. Prolog with arrays and bounded quantifications. In LPAR '93: Proceedings of the 4th International Conference on Logic Programming and Automated Reasoning. Springer, Berlin, Germany, 2839.Google Scholar
Beldiceanu, N., Carlsson, M. and Rampon, J.-X. 2005. Global Constraint Catalog. Technical Report T2005-06, Swedish Institute of Computer Science, Kista, Sweden.Google Scholar
Bocca, J. 1991. MegaLog – A platform for developing knowledge base management systems. In Proceedings of Second International Symposium on Database Systems for Advanced Applications (DASFAA '91), Tokyo, Japan, April 2–4. Advanced Database Research and Development Series, vol. 2. World Scientific, Hackensack, NJ, USA.Google Scholar
Byrd, L. 1980. Understanding the control flow of prolog programs. In Proceedings of the Logic Programming Workshop, Debrecen, Hungary, Jul 1980, Tarnlund, S.-A., Ed. 127138.Google Scholar
Cabeza, D. and Hermenegildo, M. 2000. A new module system for Prolog. In International Conference on Computational Logic (CL2000). Lecture notes in artificial intelligence (LNAI), number 1861. Springer-Verlag, New York, USA, 131148.Google Scholar
Cheadle, A. M., Harvey, W., Sadler, A. J., Schimpf, J., Shen, K. and Wallace, M. G. 2003. ECLiPSe: A Tutorial Introduction. Technical Report 03-1, IC-Parc, Imperial College London.Google Scholar
Colmerauer, A. 1982. PROLOG II Manuel de Référence et Modèle Théorique. Technical Report ERA CNRS 363, Groupe Intelligence Artificielle, Faculté des Sciences de Luminy, Marseille, France.Google Scholar
Dawson, S., Ramakrishnan, C. R., Skiena, S. and Swift, T. 1996. Principles and practice of unification factoring. ACM Transactions on Programming Languages and Systems 18, 5, 528563.CrossRefGoogle Scholar
Dincbas, M., VanHentenryck, P. Hentenryck, P., Simonis, H., Aggoun, A., Graf, T. and Berthier, F. 1988. The constraint logic programming language CHIP. In International Conference on Fifth Generation Computer Systems 1988, Tokyo, Japan, Nov 28–Dec 2.Google Scholar
Dorochevsky, M., Li, L.-L., Reeve, M., Schuerman, K. and Véron, A. 1992. ElipSys: A parallel programming system based on logic. In Logic Programming and Automated Reasoning. Lecture Notes in Computer Science (LNCS), vol. 624. Springer, Berlin, Germany, 469471.Google Scholar
El Sakkout, H. and Wallace, M. G. 2000. Probe backtrack search for minimal perturbation in dynamic scheduling. Constraints 5, 4, 359388.Google Scholar
Free Software Foundation 2009. The GNU Multiple Precision Arithmetic Library. Free Software Foundation. Accessed September 2009. URL: http://gmplib.orgGoogle Scholar
Frühwirth, T. 1998. Theory and practice of constraint handling rules. Logic Programming 37, 1–3, 95138.Google Scholar
Gervet, C. 1997. Interval propagation to reason about sets: Definition and implementation of a practical language. Constraints 1, 3, 191244.Google Scholar
Gervet, C. 2001. Large-scale combinatorial optimization: A methodological viewpoint. In Series in Discrete Mathematics and Theoretical Computer Science (DIMACS), Rutgers University Piscataway, NJ, USA, 151175.Google Scholar
Haemmerlé, R. and Fages, F. 2006. Modules for prolog revisited. In ICLP, Etalle, S. and Truszczynski, M., Eds. Lecture Notes in Computer Science, vol. 4079. Springer, New York, USA, 4155.Google Scholar
Henderson, F., Somogyi, Z. and Conway, T. 1996. Determinism analysis in the mercury compiler. Australian Computer Science Communications 18, 337346.Google Scholar
Hermenegildo, M. V. 2000. A documentation generator for (C)LP systems. In Proceedings of Computational Logic, London, UK, Jul 24–28. Springer, Berlin, Germany, 13451361.Google Scholar
Holzbaur, C. 1992. Metastructures versus attributed variables in the context of extensible unification. In PLILP, Bruynooghe, M. and Wirsing, M., Eds. Lecture Notes in Computer Science, vol. 631. Springer, Berlin, Germay, 260268.Google Scholar
Holzbaur, C. 1995. OFAI clp(Q,R) Manual. Technical Report TR-95-09, Austrian Research Institute for Artificial Intelligence, Vienna, Austria.Google Scholar
ISO. 2000. ISO/IEC 13211-2:2000: Information technology – Programming languages – Prolog – Part 2: Modules. International Organization for Standardization, Geneva, Switzerland.Google Scholar
Le Provost, T. and Wallace, M. 1992. Domain-independent propagation (or generalised propagation). In Proceedings of the International Conference on Fifth Generation Computer Systems (FGCS'92). IOS Press, Amsterdam, Netherlands, 10041011.Google Scholar
Le Provost, T. and Wallace, M. 1993. Generalized constraint propagation over the CLP Scheme. Journal of Logic Programming 16, 3–4 (Jul), 319359. Special Issue on Constraint Logic Programming.CrossRefGoogle Scholar
Lloyd, J. W., Ed. 2000. Proceedings of Computational Logic – CL 2000, First International Conference, London, UK, Jul 24–28. LNCS, vol. 1861. Springer, Berlin, Germany.Google Scholar
Lougee-Heimer, R. 2003. The common optimization INterface for operations research: Promoting open-source software in the operations research community. IBM Journal of Research and Development 47, 1, 5766. URL: http://www.coin-or.orgGoogle Scholar
Mackworth, A. K. 1977. Consistency in networks of relations. Artificial Intelligence 8, 99118.Google Scholar
Mariott, K. and Stuckey, P. 1998. Programming with Constraints: An Introduction. MIT Press, Cambridge, MA.CrossRefGoogle Scholar
Meier, M. 1990. Compilation of compound terms in Prolog. In Proceedings of the North American Conference on Logic Programming 1990, Austin, TX. MIT Press, Cambridge, MA.Google Scholar
Meier, M., Aggoun, A., Chan, D., Dufresne, P., Enders, R., de Villeneuve, D. H., Herold, A., Kay, P., Perez, B., van Rossum, E. and Schimpf, J. 1989. SEPIA – An extendible Prolog system. In Proceedings of the 11th World Computer Congress IFIP'89, San Francisco, CA. Springer, New York, USA, 11271132.Google Scholar
Naish, L. 1986. Negation and Control in Prolog. Lecture Notes in Computer Science, number 238. Springer-Verlag, New York.Google Scholar
Nethercote, N., Stuckey, P. J., Becket, R., Brand, S., Duck, G. J. and Tack, G. 2007. MiniZinc: Towards a standard CP modelling language. In Proceedings of Principles and Practice of Constraint Programming, Bessiere, C., Ed. LNCS, vol. 4741. Springer, New York, USA, 529543.Google Scholar
Noyé, J. 1994. Backtrackable updates. In ILPS Workshop: Implementation Techniques for Logic Programming Languages.Google Scholar
Schimpf, J. 1990. Garbage collection for Prolog based on twin cells. In Proceedings of the NACLP'90 Workshop on LP Architectures, Austin, TX, 16–25. URL: http://eclipseclp.org/reports/gc_naclp90.ps.gzGoogle Scholar
Schimpf, J. 2002. Logical loops. In Proceedings of the 18th International Conference on Logic Programming, Stuckey, P. J., Ed. Springer, Berlin, Germany, 224238.Google Scholar
Schulte, C., Tack, G. and Lagerkvist, M. Z. 2009. Modeling with Gecode. KTH – Royal Institute of Technology, Sweden. URL: http://www.gecode.orgGoogle Scholar
Shen, K. and Schimpf, J. 2005. Eplex: Harnessing mathematical programming solvers for constraint logic programming. In Proceedings of Principles and Practice of Constraint Programming, van Beek, P., Ed. LNCS, vol. 3709. Springer, Berlin, Germany, 622636.Google Scholar
Shen, K., Schimpf, J., Novello, S. and Singer, J. 2002. A high-level generic interface to external programming languages for ECLiPSe. In Proceedings of Practical Aspects of Declarative Languages, 4th International Symposium, PADL 2002. Lecture Notes in Computer Science, vol. 2257. Springer, Berlin, Germany, 262279.Google Scholar
Simonis, H. 2003. Developing Applications with ECLiPSe. Technical Report 03-2, IC-Parc, Imperial College London.Google Scholar
Simonis, H. 2010. ECLiPSe ELearning Course. URL: http://4c.ucc.ie/~hsimonis/ELearningGoogle Scholar
Somogyi, Z., Henderson, F. and Conway, T. 1995. Mercury: An efficient purely declarative logic programming language. In Proceedings of the Australian Computer Science Conference. Glenelg, Australia, 499512.Google Scholar
Van Hentenryck, P. and Michel, L. 2005. Constraint-Based Local Search. MIT Press, Cambridge, MA.Google Scholar
Wallace, M., Novello, S. and Schimpf, J. 1997. ECLiPSe: A platform for constraint logic programming. ICL Systems Journal 12, 1 (May), 159200.Google Scholar
Warren, D. 1983 (Oct). An Abstract Prolog Instruction Set. Technical Report 309, SRI, Menlo Park, CA, USA.Google Scholar