Abstract
Constraint logic programming languages are an extension of logic programming languages where unification has been replaced by constraint solving. Constraint solving techniques allow to reduce the search space of a logic program dramatically and have been shown to be useful in a wide area of application domains.
Functional-logic languages are a different branch in the group of declarative languages, which combine the reduction of expressions with unification. In contrast to purely functional languages, functional-logic languages allow for computations with partially known data and offer builtin search strategies, allowing for a more concise formulation of programs. Compared to purely logic languages, functional-logic languages provide functions and a declarative approach to I/O, thus avoiding the need for non-declarative language constructs (e.g. the ubiquitous cut in Prolog). In this paper we will consider the integration of constraint programming and functional-logic programming in the context of the language Curry. Curry is a multi-paradigm declarative language, which aims at unifying the different lines of research in functional-logic programming. In particular, we have chosen the domain of linear constraints over real numbers and will describe the semantic and operational issues of this integration.
Acknowledgement
I would like to thank the anonymous referees for their useful feedback and comments to the paper.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
S. Antoy, R. Echahed, and M. Hanus. Parallel evaluation strategies for functional logic languages. In Proc. ICLP ’97, pages 138–152. MIT Press, 1997.
P. Arenas-Sánchez, T. Hortalá-González, F.J. López-Fraguas, and E. Ullán-Hernández. Functional logic programming with real numbers. In Proc. JICSLP’96 Post-Conference Workshop on Multi-Paradigm Logic Programming. TR 96-28, Technical University Berlin, 1996.
H. Aït-Kaci, P. Lincoln, and R. Nasr. Le Fun: Logic, equations, and functions. In Proc. ILPS ’87, pages 17–23, 1987.
A. Colmerauer.Opening the Prolog III universe. BYTE, 12(9):177–182, August 1987.
M. Carlsson, J. Widéxn, J. Andersson, S. Andersson, K. Boortz, H. Nilsson, and T. Sjöland. Sicstus prolog user’s manual. Technical Report T91:15, SICS, June 1995.
François Fages. On the semantics of optimization predicates in clp languages. In Proc. FSTTCS 1993, pages 193–204. Springer LNCS 761, 1993.
Curry: An integrated functional logic language, (version 0.7). http://www-i2.informatik.rwth-aachen.de/~hanus/curry, 2000.
P. Hudak, S. Peyton Jones, and P. Wadler. Report on the programming language Haskell (version 1.2). SIGPLAN Notices, 27(5), 1992.
M. Hanus and F. Steiner. Controlling search in functional logic programs. In Proc. PLILP’98, 1998.
J.-L. Imbert and P. van Hentenryck. On the handling of disequations in clp over linear rational arithmetic. In F. Benhamou and A. Colmerauer, editors, Constraint Logic Programming, Selected Research, pages 49–71. MIT Press, 1993.
J. Jaffar, S. Michaylov, P.J. Stuckey, and R. Yap. The CLP(ℜ) language and system. Technical report, IBM, 1990.
Thomas Johnsson. Lambda lifting. transforming programs to recursive equations. In Proc. FPLCA 1985, pages 190–203. Springer LNCS 201, 1985.
F.J. López-Fraguas and T. Hortalá-González. TOY: A multiparadigm declarative system. In Proc. RTA’99, pages 244–247. Springer LNCS 1631, 1999.
W. Lux. Implementing encapsulated search for a lazy functional logic language. InProc. FLOPS 99, pages 100–113. Springer LNCS 1722, 1999.
W. Lux. Adding linear constraints over real numbers to curry. In Proc. WFLP 2000. TR 2000.2039, Universidad Politecnica de Valencia, 2000.
K. Marriott and P. Stuckey. Semantics of constraint logic programs with optimization. ACM Letters on Programming Languages and Systems, 2(1-4): 197–212, 1993.
U. Reddy. Narrowing as the operational semantics of functional languages. In Proc. ILPS’85, pages 138–151, 1985.
G. Smolka. The Oz programming model. In J. van Leeuwen, editor, Current Trends in Computer Science. Springer LNCS 1000, 1995.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lux, W. (2001). Adding Linear Constraints over Real Numbers to Curry. In: Kuchen, H., Ueda, K. (eds) Functional and Logic Programming. FLOPS 2001. Lecture Notes in Computer Science, vol 2024. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44716-4_12
Download citation
DOI: https://doi.org/10.1007/3-540-44716-4_12
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-41739-2
Online ISBN: 978-3-540-44716-0
eBook Packages: Springer Book Archive