Adding Linear Constraints over Real Numbers to Curry
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.
KeywordsLogic Program Linear Constraint Task Graph Optimization Constraint Linear Expression
Unable to display preview. Download preview PDF.
- [AEH97]S. Antoy, R. Echahed, and M. Hanus. Parallel evaluation strategies for functional logic languages. In Proc. ICLP ’97, pages 138–152. MIT Press, 1997.Google Scholar
- [AHLU96]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.Google Scholar
- [ALN87]H. Aït-Kaci, P. Lincoln, and R. Nasr. Le Fun: Logic, equations, and functions. In Proc. ILPS ’87, pages 17–23, 1987.Google Scholar
- [Col87]A. Colmerauer.Opening the Prolog III universe. BYTE, 12(9):177–182, August 1987.Google Scholar
- [CWA+95]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.Google Scholar
- [Fag93]François Fages. On the semantics of optimization predicates in clp languages. In Proc. FSTTCS 1993, pages 193–204. Springer LNCS 761, 1993.Google Scholar
- [Han00]Curry: An integrated functional logic language, (version 0.7). http://www-i2.informatik.rwth-aachen.de/~hanus/curry, 2000.
- [HPW92]P. Hudak, S. Peyton Jones, and P. Wadler. Report on the programming language Haskell (version 1.2). SIGPLAN Notices, 27(5), 1992.Google Scholar
- [HS98]M. Hanus and F. Steiner. Controlling search in functional logic programs. In Proc. PLILP’98, 1998.Google Scholar
- [IvH93]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.Google Scholar
- [JMSY90]J. Jaffar, S. Michaylov, P.J. Stuckey, and R. Yap. The CLP(ℜ) language and system. Technical report, IBM, 1990.Google Scholar
- [Joh85]Thomas Johnsson. Lambda lifting. transforming programs to recursive equations. In Proc. FPLCA 1985, pages 190–203. Springer LNCS 201, 1985.Google Scholar
- [LH99]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.Google Scholar
- [Lux99]W. Lux. Implementing encapsulated search for a lazy functional logic language. InProc. FLOPS 99, pages 100–113. Springer LNCS 1722, 1999.Google Scholar
- [Lux00]W. Lux. Adding linear constraints over real numbers to curry. In Proc. WFLP 2000. TR 2000.2039, Universidad Politecnica de Valencia, 2000.Google Scholar
- [Red85]U. Reddy. Narrowing as the operational semantics of functional languages. In Proc. ILPS’85, pages 138–151, 1985.Google Scholar
- [Smo95]G. Smolka. The Oz programming model. In J. van Leeuwen, editor, Current Trends in Computer Science. Springer LNCS 1000, 1995.Google Scholar