Filters








336 Hits in 3.3 sec

The integration of functions into logic programming: From theory to practice

Michael Hanus
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

Emilio Jesús Gallego Arias, Julio Mariño
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]

Sergio Antoy, Michael Hanus
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

H.Lewis Chau, D.Stott Parker
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]

Amadeo Casas, Daniel Cabeza, Manuel V. Hermenegildo
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

Sonia Estévez Martín, Rafael del Vado Vírseda
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]

Pascual Julián Iranzo, Christian Villamizar Lamus
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

D. Chimenti, R. Gamboa, R. Krishnamurthy, S. Naqvi, S. Tsur, C. Zaniolo
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

M. Alpuente
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

Michael Hanus
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

Juan Jose Moreno-Navarro, Mario Rodriguez-Artalejo
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]

Michael Hanus
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]

Herbert Kuchen, Rita Loogen, Juan José Moreno-Navarro, Mario Rodríguez-Artalejo
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]

Wolfgang Lux
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

Juan Rodríguez-Hortalá, Jaime Sánchez-Hernández
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