Results 1  10
of
56
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
Operational Semantics for Declarative MultiParadigm Languages
 Journal of Symbolic Computation
, 2005
"... Abstract. In this paper we define an operational semantics for functional logic languages covering notions like laziness, sharing, concurrency, nondeterminism, etc. Such a semantics is not only important to provide appropriate language definitions to reason about programs and check the correctness ..."
Abstract

Cited by 68 (29 self)
 Add to MetaCart
Abstract. In this paper we define an operational semantics for functional logic languages covering notions like laziness, sharing, concurrency, nondeterminism, etc. Such a semantics is not only important to provide appropriate language definitions to reason about programs and check the correctness of implementations but it is also a basis to develop languagespecific tools, like program tracers, profilers, optimizers, etc. First, we define a &quot;bigstep &quot; semantics in natural style to relate expressions and their evaluated results. Since this semantics is not sufficient to cover concurrency, search strategies, or to reason about costs associated to particular computations, we also define a &quot;smallstep &quot; operational semantics covering the features of modern functional logic languages.
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
Functional Logic Design Patterns
 In Proc. of the 6th International Symposium on Functional and Logic Programming (FLOPS 2002
, 2002
"... Abstract. We introduce a handful of software design patterns for functional logic languages. Following usual approaches, for each pattern we propose a name and we describe its intent, applicability, structure, consequences, etc. Our patterns deal with data type construction, identifier declarations, ..."
Abstract

Cited by 45 (25 self)
 Add to MetaCart
(Show Context)
Abstract. We introduce a handful of software design patterns for functional logic languages. Following usual approaches, for each pattern we propose a name and we describe its intent, applicability, structure, consequences, etc. Our patterns deal with data type construction, identifier declarations, mappings, search, nondeterminism and other fundamental aspects of the design and implementation of programs. We present some problems and we show fragments of programs that solve these problems using our patterns. The programming language of our examples is Curry. The complete programs are available online. 1
A Practical Partial Evaluation Scheme for MultiParadigm Declarative Languages
 Journal of Functional and Logic Programming
, 2002
"... \Lambda y ..."
(Show Context)
Declarative Programming with Function Patterns
 In Proceedings of the International Symposium on Logicbased Program Synthesis and Transformation (LOPSTR’05
, 2005
"... Abstract. We propose an extension of functional logic languages that allows the definition of operations with patterns containing other defined operation symbols. Such “function patterns ” have many advantages over traditional constructor patterns. They allow a direct representation of specification ..."
Abstract

Cited by 25 (18 self)
 Add to MetaCart
(Show Context)
Abstract. We propose an extension of functional logic languages that allows the definition of operations with patterns containing other defined operation symbols. Such “function patterns ” have many advantages over traditional constructor patterns. They allow a direct representation of specifications as declarative programs, provide better abstractions of patterns as firstclass objects, and support the highlevel programming of queries and transformation of complex structures. Moreover, they avoid known problems that occur in traditional programs using strict equality. We define their semantics via a transformation into standard functional logic programs. Since this transformation might introduce an infinite number of rules, we suggest an implementation that can be easily integrated with existing functional logic programming systems. 1
A Virtual Machine for Functional Logic Computations
 In Proc. of the 16th International Workshop on Implementation and Application of Functional Languages (IFL 2004
, 2005
"... Abstract. We describe the architecture of a virtual machine for executing functional logic programming languages. A distinguishing feature of our machine is that it preserves the operational completeness of nondeterministic programs by concurrently executing a pool of independent computations. Each ..."
Abstract

Cited by 20 (17 self)
 Add to MetaCart
(Show Context)
Abstract. We describe the architecture of a virtual machine for executing functional logic programming languages. A distinguishing feature of our machine is that it preserves the operational completeness of nondeterministic programs by concurrently executing a pool of independent computations. Each computation executes only rootneeded sequential narrowing steps. We describe the machine’s architecture and instruction set, and show how to compile overlapping inductively sequential programs to sequences of machine instructions. The machine has been implemented in Java and in Standard ML. 1
KiCS2: A New Compiler from Curry to Haskell
 IN PROC. OF THE 20TH INTERNATIONAL WORKSHOP ON FUNCTIONAL AND (CONSTRAINT) LOGIC PROGRAMMING (WFLP 2011
, 2011
"... In this paper we present our first steps towards a new system to compile functional logic programs of the source language Curry into purely functional Haskell programs. Our implementation is based on the idea to represent nondeterministic results as values of the data types corresponding to the res ..."
Abstract

Cited by 18 (11 self)
 Add to MetaCart
(Show Context)
In this paper we present our first steps towards a new system to compile functional logic programs of the source language Curry into purely functional Haskell programs. Our implementation is based on the idea to represent nondeterministic results as values of the data types corresponding to the results. This enables the application of various search strategies to extract values from the search space. We show by several benchmarks that our implementation can compete with or outperform other existing implementations of Curry.
A Practical Partial Evaluator for a MultiParadigm Declarative Language
 Journal of Functional and Logic Programming
, 2001
"... Partial evaluation is an automatic technique for program optimization which preserves program semantics. The range of its potential applications is extremely large, as witnessed by successful experiences in several fields. This paper summarizes our findings in the development of partial evaluation t ..."
Abstract

Cited by 17 (13 self)
 Add to MetaCart
(Show Context)
Partial evaluation is an automatic technique for program optimization which preserves program semantics. The range of its potential applications is extremely large, as witnessed by successful experiences in several fields. This paper summarizes our findings in the development of partial evaluation tools for Curry, a modern multiparadigm declarative language which combines features from functional, logic and concurrent programming. From a practical point of view, the most promising approach appears to be a recent partial evaluation framework which translates source programs into a maximally simplified representation. We support this statement by extending the underlying method in order to design a practical partial evaluation tool for the language Curry. The process is fully automatic and can be incorporated into a Curry compiler as a sourcetosource transformation on intermediate programs. An implementation of the partial evaluator has been undertaken. Experimental resul...
Solving Combinatorial Problems with a Constraint Functional Logic Language
, 2003
"... This paper describes a proposal to incorporate finite domain constraints in a functional logic system. The proposal integrates functions, higherorder patterns, partial applications, nondeterminism, logical variables, currying, types, lazyness, domain variables, constraints and finite domain pr ..."
Abstract

Cited by 15 (4 self)
 Add to MetaCart
This paper describes a proposal to incorporate finite domain constraints in a functional logic system. The proposal integrates functions, higherorder patterns, partial applications, nondeterminism, logical variables, currying, types, lazyness, domain variables, constraints and finite domain propagators.