A copy of this work was available on the public web and has been preserved in the Wayback Machine. The capture dates from 2019; you can also visit the original URL.
The file type is application/pdf
.
Filters
The integration of functions into logic programming: From theory to practice
1994
The Journal of Logic Programming
The author is grateful to Herbert Kuchen, Rita Loogen, and an anonymous referee for their detailed comments on a previous version of this paper. ...
Compilation into another high-level language for which efficient implementations exist [ 1281. 2. Compilation into a low-level machine which is efficiently executable on conventional hardware. ...
Compilation into Abstract Machines The use of "abstract machines" is a well-known technique for the efficient implementation of functional and logic languages on standard hardware. ...
doi:10.1016/0743-1066(94)90034-5
fatcat:fp45iy6ne5chhg6q2z4wwcktu4
An overview of the Sloth2005 curry system
2005
Proceedings of the 2005 ACM SIGPLAN workshop on Curry and functional logic programming - WCFLP '05
We present the current state and immediate future developments of Sloth [7], a Curry [2] to Prolog translator. ...
Introduction Sloth is a compiler that translates Curry programs into Prolog, extending our previous work on the translation of Babel programs. ...
A.1 Main execution model The execution of Curry is achieved in Sloth by lazy narrowing. This reduction strategy is based on computing the Head Normal Form of an expression. ...
doi:10.1145/1085099.1085113
dblp:conf/wcflp/AriasM05
fatcat:aqoganauufhgxfrp3jhdqwax7i
Compiling Multi-paradigm Declarative Programs into Prolog
[chapter]
2000
Lecture Notes in Computer Science
The implementation, directed by the lazy pattern matching strategy of Curry, is obtained by transforming Curry programs into Prolog programs. ...
In the next section, we review the basic computation model of Curry. The transformation scheme for compiling Curry programs into Prolog programs is presented in Section 3. ...
The compilation of Curry programs into Prolog greatly simplifies the integration of constraint solvers for other constraint structures, if the underlying Prolog system offers solvers for these structures ...
doi:10.1007/10720084_12
fatcat:6lx3io6mdncv3mqcc3lo4uiawe
Narrowing grammar: theory, implementation, and applications
1992
The Journal of Logic Programming
Grammar rule is compiled into a single Prolog clause, which incrementally applies the outermost evaluation scheme of NU-narrowing using that rule.
Algorithm 3. ...
Narrowing Grammar is directly executable, like many logic grammars. In fact, Narrowing Grammar rules can be compiled to Prolog and executed by existing Prolog interpreters as generators or acceptors. ...
PLAN OF PROOF. Induction on the length of a successful Prolog-derivation of simplify(X, Y). ...
doi:10.1016/0743-1066(92)90013-s
fatcat:2ab5uyxgojei7dd5grkx7fnofe
A Syntactic Approach to Combining Functional Notation, Lazy Evaluation, and Higher-Order in LP Systems
[chapter]
2006
Lecture Notes in Computer Science
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 programming also sometimes allows a more direct encoding of lazy evaluation, with its ability to deal with infinite data structures. ...
It loads the module defined by its argument into the compiler. ...
doi:10.1007/11737414_11
fatcat:gckkequ2sbhwrhwifdz4vrdfza
Designing an efficient computation strategy in CFLP(FD) using definitional trees
2005
Proceedings of the 2005 ACM SIGPLAN workshop on Curry and functional logic programming - WCFLP '05
This paper proposes the integration of finite domain (FD) constraints into a general purpose lazy functional logic programming language by means of a concrete instance of the generic scheme CF LP (D), ...
This convenient computation mechanism is obtained as an optimization of the generic Constrained Lazy Narrowing Calculus CLN C(D) presented in [20] , which has been proved sound and strongly complete w.r.t ...
work and for the help in preparing the final version of this paper. ...
doi:10.1145/1085099.1085105
dblp:conf/wcflp/MartinV05
fatcat:zxjgazkdyrhenhtoj3xbfmaqwq
Analysing Definitional Trees: Looking for Determinism
[chapter]
2004
Lecture Notes in Computer Science
This paper describes how high level implementations of (needed) narrowing into Prolog can be improved by analysing definitional trees. ...
As a result of this analysis, we define some generic algorithms that allow us to compile a functional logic program into a set of Prolog clauses which increases determinism and incorporates some refinements ...
Acknowledgements We gratefully acknowledge Sergio Antoy for clarifying us some aspects of the theoretical/practical dimension of the failing derivations problem. ...
doi:10.1007/978-3-540-24754-8_6
fatcat:bonnkyefrbcfvluu466i4l67di
The LDL system prototype
1990
IEEE Transactions on Knowledge and Data Engineering
This paper contains a comprehensive overview of the system and contains a description of the LDL language and the compilation techniques employed to translate LDL queries into target queries on the stored ...
the compiled queries. ...
In order to efficiently compile some of the advanced constructs of LDL, additional execution strategies, i.e. materialized, lazy materialized, lazy pipelined, snapshot and stack-based executions, must ...
doi:10.1109/69.50907
fatcat:7hdqgrvklzf4zb2lm6xkejdk4a
Uniform Lazy Narrowing
2003
Journal of Logic and Computation
Since actual implementations of functional logic languages are based on the transformation of the original program into a uniform one-which is then executed using a lazy narrowing strategy-our results ...
We also introduce a complete refinement of lazy narrowing, called uniform lazy narrowing, which is still equivalent to needed narrowing over the aforementioned class. ...
Thanks to the strong equivalence between uniform lazy narrowing and needed narrowing over the class of uniform programs, we could compile the original program to a "uniform-like" set of Prolog clauses ...
doi:10.1093/logcom/13.2.287
fatcat:ui3pkqxg5rfffp2i2lapladeou
Reporting Failures in Functional Logic Programs
2007
Electronical Notes in Theoretical Computer Science
Our new technique supports separate compilation of modules, i.e., the compilation of modules has not taken into account whether failures should be reported or not. ...
Therefore, this paper discusses techniques for reporting failures and proposes a new one that has been integrated in a Prolog-based compiler for the declarative multi-paradigm language Curry. ...
Compilation into Prolog In this section we discuss standard high-level implementation techniques of functional logic languages by compilation into Prolog. ...
doi:10.1016/j.entcs.2007.01.002
fatcat:wun4ucznqfbj3eqeoox3gmszii
Logic programming with functions and predicates: The language Babel
1992
The Journal of Logic Programming
Lazy narrowing works by narrowing expressions through application of rules. ...
The computation illustrates lazy rewriting as a particular case of lazy narrowing. ...
doi:10.1016/0743-1066(92)90024-w
fatcat:ivmolddkd5hvfk3qp65sotbq2y
From Logic to Functional Logic Programs
[article]
2022
arXiv
pre-print
To extend logic languages with the compact notation of functional programming, there are various proposals to map evaluable functions into predicates in order to stay in the logic programming framework ...
By mapping logic programs into functional logic programs with a transformation based on inferring functional dependencies, we develop a fully automatic transformation which keeps the flexibility of logic ...
Although our implemented tool maps logic programs into Curry programs, one could also map them back into Prolog programs by compiling the demand-driven evaluation strategy into appropriate features of ...
arXiv:2205.06841v1
fatcat:du6oucg3zrfptfxrlxhkky55ue
Graph-based implementation of a functional logic language
[chapter]
1990
Lecture Notes in Computer Science
We present in this paper a graph-narrowing abstract machine which has been designed to support a sequential eager implementation of a functional logic language. ...
We describe the structure of the machine and explain the compilation scheme which generates machine code from a given source program. ...
The structure of the BABEL abstract machine is described in section 3, where we also explain the compilation of BABEL programs into code for the abstract machine. ...
doi:10.1007/3-540-52592-0_69
fatcat:z2yymn3c4ve6fcvkysj3xygzve
Implementing Encapsulated Search for a Lazy Functional Logic Language
[chapter]
1999
Lecture Notes in Computer Science
In the present paper we develop an abstract machine that aims at an efficient implementation of encapsulated search in a lazy functional logic language. ...
A distinguishing feature of logic and functional logic languages is their ability to perform computations with partial data and to search for solutions of a goal. ...
The third column shows the results for the benchmarks when translated into Prolog and compiled with Sicstus Prolog. ...
doi:10.1007/10705424_7
fatcat:ixgilb7dsnhytp7ftroewaj7mi
Functions and Lazy Evaluation in Prolog
2008
Electronical Notes in Theoretical Computer Science
The main novelty is our treatment of laziness, as it is (optionally) associated to data type constructors instead of functions. We have found this approach very flexible, easy to use and efficient. ...
The basic idea is to enlarge the language with function definitions that are translated (or expanded) into Prolog predicates, analogously to what is done for Definite Clause Grammars (DCG's). ...
Furthermore, these languages are usually implemented by a compilation into Prolog code. ...
doi:10.1016/j.entcs.2008.03.080
fatcat:xt2nhqzrafgu3ppyzn5vuof35m
« Previous
Showing results 1 — 15 out of 336 results