Abstract
The logic programming language Mercury is designed to support programming in the large. Programmer declarations in conjunction with powerful compile-time analysis and optimization allow Mercury programs to be very efficient. The original design of Mercury did not support constraint logic programming (CLP). This paper describes the extensions we added to Mercury to support CLP. Unlike similarly motivated extensions to Prolog systems, our objectives included preserving the purity of Mercury programs as much as possible, as well as avoiding any impact on the efficiency of non-CLP predicates and functions.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
ILOG CPLEX, www.cplex.com
Demoen, B., Garcia de la Banda, M., Harvey, W., Marriott, K., Stuckey, P.J.: An overview of HAL. In: Proceedings of the Fourth International Conference on Principles and Practices of Constraint Programming, pp. 174–188 (1999)
Duck, G.J., García de la Banda, M., Stuckey, P.J.: Compiling ask constraints. In: Demoen, B., Lifschitz, V. (eds.) ICLP 2004. LNCS, vol. 3132, pp. 105–119. Springer, Heidelberg (2004)
ECLiPSe, http://www.icparc.ic.ac.uk/eclipse/
Henderson, F., Conway, T., Somogyi, Z., Jeffery, D., Schachte, P., Taylor, S., Speirs, C.: The Mercury language reference manual (2000). Available from, http://www.cs.mu.oz.au/mercury/
Hermenegildo, M., Bueno, F., Cabeza, D., Garcia de la Banda, M., López, P., Puebla, G.: The CIAO Multi-Dialect Compiler and System: An Experimentation Workbench for Future (C)LP Systems. In: Parallelism and Implementation of Logic and Constraint Logic Programming. Nova Science, Commack (1999)
Holzbaur, C.: Metastructures vs. attributed variables in the context of extensible unification. In: Bruynooghe, M., Wirsing, M. (eds.) PLILP 1992. LNCS, vol. 631, pp. 260–268. Springer, Heidelberg (1992)
Jaffar, J., Lassez, J.-L.: Constraint logic programming. In: Proceedings of POPL 1987, pp. 111–119 (1987)
Mozart, http://www.mozart-oz.org
SICStus Prolog, http://www.sics.se/sicstus/
Somogyi, Z., Henderson, F., Conway, T.: The execution algorithm of Mercury: an efficient purely declarative logic programming language. Journal of Logic Programming 29, 17–64 (1996)
Warren, D.H.D.: An abstract Prolog instruction set. Technical Report 309, SRI International, Menlo Park, U.S.A (October 1983)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Becket, R., de la Banda, M.G., Marriott, K., Somogyi, Z., Stuckey, P.J., Wallace, M. (2005). Adding Constraint Solving to Mercury. In: Van Hentenryck, P. (eds) Practical Aspects of Declarative Languages. PADL 2006. Lecture Notes in Computer Science, vol 3819. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11603023_9
Download citation
DOI: https://doi.org/10.1007/11603023_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-30947-5
Online ISBN: 978-3-540-31685-5
eBook Packages: Computer ScienceComputer Science (R0)