Results 1  10
of
48
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 65 (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.
A Syntactic Approach to Combining Functional Notation, Lazy Evaluation and HigherOrder in LP Systems
 In The 8th International Symposium on Functional and Logic Programming (FLOPS’06
, 2006
"... Abstract. Nondeterminism and partially instantiated data structures give logic programming expressive power beyond that of functional programming. However, functional programming often provides convenient syntactic features, such as having a designated implicit output argument, which allow function ..."
Abstract

Cited by 24 (11 self)
 Add to MetaCart
(Show Context)
Abstract. Nondeterminism and partially instantiated data structures give logic programming expressive power beyond that of functional programming. However, functional programming often provides convenient syntactic features, such as having a designated implicit output argument, which allow function call nesting and sometimes results in more compact code. Functional programming also sometimes allows a more direct encoding of lazy evaluation, with its ability to deal with infinite data structures. We present a syntactic functional extension, used in the Ciao system, which can be implemented in ISOstandard Prolog systems and covers function application, predefined evaluable functors, functional definitions, quoting, and lazy evaluation. The extension is also composable with higherorder features and can be combined with other extensions to ISOProlog such as constraints. We also highlight the features of the Ciao system which help implementation and present some data on the overhead of using lazy evaluation with respect to eager evaluation.
Functional logic overloading
, 2002
"... Functional logic overloading is a novel approach to userdefined overloading that extends Haskell’s concept of type classes in significant ways. Whereas type classes are conceptually predicates on types in standard Haskell, they are type functions in our approach. Thus, we can base type inference on ..."
Abstract

Cited by 16 (1 self)
 Add to MetaCart
(Show Context)
Functional logic overloading is a novel approach to userdefined overloading that extends Haskell’s concept of type classes in significant ways. Whereas type classes are conceptually predicates on types in standard Haskell, they are type functions in our approach. Thus, we can base type inference on the evaluation of functional logic programs. Functional logic programming provides a solid theoretical foundation for type functions and, at the same time, allows for programmable overloading resolution strategies by choosing different evaluation strategies for functional logic programs. Type inference with type functions is an instance of type inference with constrained types, where the underlying constraint system is defined by a functional logic program. We have designed a variant of Haskell which supports our approach to overloading, and implemented a prototype frontend for the language.
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 fram ..."
Abstract

Cited by 11 (6 self)
 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 ‘finite ’ failure of reduction within CRWL.
A Computation Model for Z Based On Concurrent Constraint Resolution
 ZB2000  International Conference of Z and B Users
, 2000
"... . We present a computation model for Z, which is based on a reduction to a small calculus, called Z, and on concurrent constraint resolution techniques applied for computing in this calculus. The power of the model is comparable to that of functional logic languages, and combines the strength of hig ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
(Show Context)
. We present a computation model for Z, which is based on a reduction to a small calculus, called Z, and on concurrent constraint resolution techniques applied for computing in this calculus. The power of the model is comparable to that of functional logic languages, and combines the strength of higherorder functional computation with logic computation. The model is implemented as part of the ZETA system, where it is used for executing Z specifications for the purpose of testdata evaluation and prototyping. 1 Introduction The automatic evaluation of test data for safetycritical systems is an interesting application that can help to put formal methods into industrial practice. Some studies report that more than 50% of development costs in this application area go into testing. A setting for testcase evaluation that can improve this situation is as follows: given a requirements specification, some input data describing a test case, and the output data from a run of the system's impl...
A Safe Relational Calculus for Functional Logic Deductive Databases
 Electronic Notes in Theoretical Computer Science
, 2003
"... In this paper, we present an extended relational calculus for expressing queries in functionallogic deductive databases. This calculus is based on firstorder logic and handles relation predicates, equalities and inequalities over partially defined terms, and approximation equations. For the calcul ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
(Show Context)
In this paper, we present an extended relational calculus for expressing queries in functionallogic deductive databases. This calculus is based on firstorder logic and handles relation predicates, equalities and inequalities over partially defined terms, and approximation equations. For the calculus formulas, we have studied syntactic conditions in order to ensure the domain independence property. Finally, we have studied its equivalence w.r.t. the original query language, which is based on equality and inequality constraints.
A Graphical Development Environment for Functional Logic Languages
 Universidad Politécnica de Valencia
, 2000
"... In this paper we present an Integrated Development Environment based on the Programming Environment that support the Functional Logic languages selected: Curry and TOY. The environment has been built using the Tcl/Tk language. The main feature of this environment is its portability, as we show the e ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
In this paper we present an Integrated Development Environment based on the Programming Environment that support the Functional Logic languages selected: Curry and TOY. The environment has been built using the Tcl/Tk language. The main feature of this environment is its portability, as we show the environment can support, with little changes, different functional and/or logic languages. Another interesting feature is that it can be programmed in some of those languages (Curry, Haskell, Prolog,. . . ) in a pure declarative way using their graphic user interface libraries. Moreover, the design of the environment has been done taking special care of the reusability aspect, following modern componentbased programming approaches.
Improving deterministic computations in lazy functional logic languages
 Journal of Functional and Logic Programming
"... ..."
(Show Context)
Interfacing a Functional Logic Language with a Finite Domain Solver
 11th International Workshop on Functional and (Constraint) Logic Programming
, 2002
"... Abstract. In this paper, we present a straightforward way for interfacing the functional logic language T OY with a finite domain solver. Since T OY programs are compiled to Sicstus Prolog programs, we use the Sicstus ’ finite domain library to allow the expression of a finite domain problem in T OY ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
(Show Context)
Abstract. In this paper, we present a straightforward way for interfacing the functional logic language T OY with a finite domain solver. Since T OY programs are compiled to Sicstus Prolog programs, we use the Sicstus ’ finite domain library to allow the expression of a finite domain problem in T OY. Finite domain T OY programs consist of functional logic T OY rules interfaced with constraint Sicstus clauses. This approach allows us to take advantage of the full functionality of Sicstus Prolog constraints.