Results 1  10
of
10
The Integration of Functions into Logic Programming: From Theory to Practice
 Journal of Logic Programming
, 1994
"... Abstract. Functional logic programming languages combine the most important declarative programming paradigms, and attempts to combine these paradigms have a long history. The declarative multiparadigm language Curry is influenced by recent advances in the foundations and implementation of function ..."
Abstract

Cited by 362 (59 self)
 Add to MetaCart
(Show Context)
Abstract. Functional logic programming languages combine the most important declarative programming paradigms, and attempts to combine these paradigms have a long history. The declarative multiparadigm language Curry is influenced by recent advances in the foundations and implementation of functional logic languages. The development of Curry is an international initiative intended to provide a common platform for the research, teaching, and application of integrated functional logic languages. This paper surveys the foundations of functional logic programming that are relevant for Curry, the main features of Curry, and extensions and applications of Curry and functional logic programming. 1
Multiparadigm Declarative Languages
 In Proceedings of the International Conference on Logic Programming (ICLP 2007
, 2007
"... Abstract. Declarative programming languages advocate a programming style expressing the properties of problems and their solutions rather than how to compute individual solutions. Depending on the underlying formalism to express such properties, one can distinguish different classes of declarative l ..."
Abstract

Cited by 53 (18 self)
 Add to MetaCart
(Show Context)
Abstract. Declarative programming languages advocate a programming style expressing the properties of problems and their solutions rather than how to compute individual solutions. Depending on the underlying formalism to express such properties, one can distinguish different classes of declarative languages, like functional, logic, or constraint programming languages. This paper surveys approaches to combine these different classes into a single programming language. 1
Constraint Functional Logic Programming Revisited
, 2005
"... In this paper we propose a new generic scheme CFLP (D), intended as a logical and semantic framework for lazy Constraint Functional Logic Programming over a parametrically given constraint domain D. As in the case of the well known CLP (D) scheme for Constraint Logic Programming, D is assumed to pr ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
In this paper we propose a new generic scheme CFLP (D), intended as a logical and semantic framework for lazy Constraint Functional Logic Programming over a parametrically given constraint domain D. As in the case of the well known CLP (D) scheme for Constraint Logic Programming, D is assumed to provide domain specific data values and constraints. CFLP (D) programs are presented as sets of constrained rewrite rules that define the behaviour of possibly higher order and/or nondeterministic lazy functions over D. As the main novelty w.r.t. previous related work, we present a Constraint Rewriting Logic CRWL(D) which provides a declarative semantics for CFLP (D) programs. This logic relies on a new formalization of constraint domains and program interpretations, which allows a flexible combination of domain specific data values and user defined data constructors, as well as a functional view of constraints.
Declarative Programming with Real Constraints
, 1997
"... . We present a declarative language  CFLP (R)  which enhances functional logic programming with constraint solving capabilities. CFLP (R) features: polymorphic types, nondeterministic functions, lazy evaluation, higher order (even logic) computations, arithmetical constraints over real numbers a ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
. We present a declarative language  CFLP (R)  which enhances functional logic programming with constraint solving capabilities. CFLP (R) features: polymorphic types, nondeterministic functions, lazy evaluation, higher order (even logic) computations, arithmetical constraints over real numbers and disequality constraints over syntactic terms. The features of the language are shown by means of examples, attempting to demonstrate the interest of CFLP (R). The execution mechanism of the language results of a simple combination of lazy narrowing (with a sophisticated strategy, as realized in up to date functional logic languages) and constraint solving. The language has been implemented by means of translation of source programs into a Prolog system supporting real constraint solving. This shows the practicability of the proposal. 1 Introduction Constraints play a central role in present days research, development and application of logic programming (LP) languages (see [15] for a sur...
Programming with Multisets
, 1998
"... This paper proposes a novel way of introducing multisets into declarative programming languages. Starting from a standard definition of a multiset, suitable operations on multisets are defined and implemented in a declarative programming language, and a variety of programming examples are given to i ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
This paper proposes a novel way of introducing multisets into declarative programming languages. Starting from a standard definition of a multiset, suitable operations on multisets are defined and implemented in a declarative programming language, and a variety of programming examples are given to illustrate the utility of the ideas. This approach to multisets is compared with their treatment in the Z specification language and other approaches in programming languages. Multisets are recognised as being important in specification but are not normally provided as a fullyfledged data type in programming languages. The approach presented here helps to reduce this mismatch. 1 Introduction Intuitively, a multiset (also called a bag) is similar to a set, except that there can be multiple occurrences of items. There are various ways of formalising this intuition. The most natural and direct of these is as follows. Definition A multiset m on some set X is a function m : X ! fl, where fl is ...
A new generic scheme for functional logic programming with constraints
 HIGHERORDER AND SYMBOLIC COMPUTATION
, 2007
"... ..."
FunctionalLogic Parsers In TOY
, 1998
"... Parsing has been a traditional workbench for showing the virtues of declarative programming. Both logic and functional programming claim the ability of writing parsers in a natural and concise way. We address here the task from a functionallogic perspective. By modelling parsers as nondeterministi ..."
Abstract
 Add to MetaCart
Parsing has been a traditional workbench for showing the virtues of declarative programming. Both logic and functional programming claim the ability of writing parsers in a natural and concise way. We address here the task from a functionallogic perspective. By modelling parsers as nondeterministic functions we achieve a very natural manner of building parsers, which combines the nicest properties of the functional and logic approaches. In particular, we are able to easily define within our framework parsers in a style very close to the `monadic parsers' of functional programming, but without any syntactic overhead. In a different direction we show that, if the functionallogic setting permits higherorder patterns while defining functions, parsers can be freely manipulated as data. This allows programming useful metalevel analysis or transformations, like discovering if the grammar corresponding to a given parser is LL(1). Finally, we sketch the potential application to parsing of f...
Under consideration for publication in Theory and Practice of Logic Programming 1 A Proof Theoretic Approach to Failure in Functional Logic Programming
"... How to extract negative information from programs is an important issue in logic programming. Here we address the problem for functional logic programs, from a prooftheoretic perspective. The starting point of our work is CRWL (Constructor based ReWriting Logic), a well established theoretical fra ..."
Abstract
 Add to MetaCart
How to extract negative information from programs is an important issue in logic programming. Here we address the problem for functional logic programs, from a prooftheoretic perspective. The starting point of our work is CRWL (Constructor based ReWriting Logic), a well established theoretical framework for functional logic programming, whose fundamental notion is that of nonstrict nondeterministic function. We present a proof calculus, CRWLF, which is able to deduce negative information from CRWLprograms. In particular, CRWLF is able to prove ` nite ' failure of reduction within CRWL.