Skip to main content

Adding Constraint Solving to Mercury

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3819))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. B-Prolog, www.sci.brooklyn.cuny.edu/~zhou/bprolog.html

  2. ILOG CPLEX, www.cplex.com

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

    Google Scholar 

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

    Chapter  Google Scholar 

  5. ECLiPSe, http://www.icparc.ic.ac.uk/eclipse/

  6. 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/

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

    Google Scholar 

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

    Chapter  Google Scholar 

  9. Jaffar, J., Lassez, J.-L.: Constraint logic programming. In: Proceedings of POPL 1987, pp. 111–119 (1987)

    Google Scholar 

  10. Mozart, http://www.mozart-oz.org

  11. SICStus Prolog, http://www.sics.se/sicstus/

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

    Article  MATH  Google Scholar 

  13. Warren, D.H.D.: An abstract Prolog instruction set. Technical Report 309, SRI International, Menlo Park, U.S.A (October 1983)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics