Results 1 - 10
of
11
Operational Semantics for Declarative Multi-Paradigm 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, non-determinism, etc. Such a semantics is not only important to provide appropriate language definitions to reason about programs and check the correctness ..."
Abstract
-
Cited by 48 (22 self)
- Add to MetaCart
Abstract. In this paper we define an operational semantics for functional logic languages covering notions like laziness, sharing, concurrency, non-determinism, 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 "big-step " 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 "small-step " operational semantics covering the features of modern functional logic languages.
The Narrowing-Driven Approach to Functional Logic Program Specialization
- New Generation Computing
, 2002
"... Partial evaluation is a semantics-based program optimization technique which has been investigated within di#erent programming paradigms and applied to a wide variety of languages. Recently, a partial evaluation framework for functional logic programs has been proposed. ..."
Abstract
-
Cited by 32 (18 self)
- Add to MetaCart
Partial evaluation is a semantics-based program optimization technique which has been investigated within di#erent programming paradigms and applied to a wide variety of languages. Recently, a partial evaluation framework for functional logic programs has been proposed.
A Practical Partial Evaluation Scheme for Multi-Paradigm Declarative Languages
- Journal of Functional and Logic Programming
, 2002
"... \Lambda y ..."
Self-tuning resource aware specialisation for Prolog
- In Proc. of PPDP’05
, 2005
"... The paper develops a self-tuning resource aware partial evaluation technique for Prolog programs, which derives its own control strategies tuned for the underlying computer architecture and Prolog compiler using a genetic algorithm approach. The algorithm is based on mutating the annotations of offl ..."
Abstract
-
Cited by 17 (1 self)
- Add to MetaCart
The paper develops a self-tuning resource aware partial evaluation technique for Prolog programs, which derives its own control strategies tuned for the underlying computer architecture and Prolog compiler using a genetic algorithm approach. The algorithm is based on mutating the annotations of offline partial evaluation. Using a set of representative sample queries it decides upon the fitness of annotations, controlling the trade-off between code explosion, speedup gained and specialisation time. The user can specify the importance of each of these factors in determining the quality of the produced code, tailouring the specialisation to the particular problem at hand. We present experimental results for our implemented technique on a series of benchmarks. The results are compared against the aggressive termination based binding-time analysis and optimised using different measures for the quality of code. We also show that our technique avoids some classical pitfalls of partial evaluation.
Operational Semantics for Functional Logic Languages
- Electronic Notes in Theoretical Computer Science
, 2002
"... In this work we provide a semantic description of functional logic languages covering notions like laziness, sharing, and non-determinism. Such a semantic description is essential, for instance, to have appropriate language definitions in order to reason about programs and check the correctness of i ..."
Abstract
-
Cited by 15 (10 self)
- Add to MetaCart
In this work we provide a semantic description of functional logic languages covering notions like laziness, sharing, and non-determinism. Such a semantic description is essential, for instance, to have appropriate language definitions in order to reason about programs and check the correctness of implementations. First, we define a "big-step" semantics in natural style to relate expressions and their evaluated results. Since this semantics is not su#cient to reason about the operational aspects of programs, we also define a "small-step" operational semantics covering the main features of functional logic languages. Finally, we demonstrate the equivalence of the "small-step" semantics and the natural semantics.
Symbolic Profiling for Multi-Paradigm Declarative Languages
, 2002
"... We present the basis of a source-level profiler for multiparadigm declarative languages which integrate features from (lazy) functional and logic programming. Our profiling scheme is symbolic in the sense that it is independent of the particular language implementation. ..."
Abstract
-
Cited by 9 (7 self)
- Add to MetaCart
We present the basis of a source-level profiler for multiparadigm declarative languages which integrate features from (lazy) functional and logic programming. Our profiling scheme is symbolic in the sense that it is independent of the particular language implementation.
Cost-Augmented Partial Evaluation of Functional Logic Programs
- Higher-Order and Symbolic Computation
, 2004
"... We enhance the narrowing-driven partial evaluation scheme for lazy functional logic programs with the computation of symbolic costs. The enhanced scheme allows us to estimate the e#ects of the program transformer in a precise framework and, moreover, to quantify these e#ects. The considered costs ar ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
We enhance the narrowing-driven partial evaluation scheme for lazy functional logic programs with the computation of symbolic costs. The enhanced scheme allows us to estimate the e#ects of the program transformer in a precise framework and, moreover, to quantify these e#ects. The considered costs are "symbolic " in the sense that they measure the number of basic operations performed during a computation rather than actual execution times. Our scheme may serve as a basis to develop speedup analyses and cost-guided transformers. A cost-augmented partial evaluator, which demonstrates the usefulness of our approach, has been implemented in the multi-paradigm language Curry.
Improving the Efficiency of Non-Deterministic Computations
- Upaya Penyysybab Kebijakan Pemerintahan Desa Berbasis Masyarakat Adat, Wisma Lembah Nyiur
, 2001
"... Abstract. Non-deterministic computations greatly enhance the expressive power of functional logic programs, but are often computationally expensive. We analyze two programming techniques that improve the time and memory efficiency of some non-deterministic computations. These techniques rely on the ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Abstract. Non-deterministic computations greatly enhance the expressive power of functional logic programs, but are often computationally expensive. We analyze two programming techniques that improve the time and memory efficiency of some non-deterministic computations. These techniques rely on the introduction of a new symbol into the signature of a program. In one technique this symbol is a polymorphic defined operation, in the other an overloaded constructor. Our programming techniques may save execution time by reducing the number of steps of a computation, as well as memory occupation, by reducing the number of terms constructed by a computation. We show how to apply our techniques using some examples, and informally reason about their effects. 1
77 Source-Level Abstract Profiling for Multi-Paradigm Declarative Languages?
"... 1. The most immediate application consists of using the information gathered ..."
Abstract
- Add to MetaCart
1. The most immediate application consists of using the information gathered
A Partial Evaluation Tool for Multi-Paradigm Declarative Languages
, 2002
"... This article describes a practical (online) partial evaluation tool which is applicable to modern multi-paradigm declarative languages (like, e.g., Curry). The most recent proposal for multiparadigm declarative programming advocates the integration of features from functional, logic and concurrent p ..."
Abstract
- Add to MetaCart
This article describes a practical (online) partial evaluation tool which is applicable to modern multi-paradigm declarative languages (like, e.g., Curry). The most recent proposal for multiparadigm declarative programming advocates the integration of features from functional, logic and concurrent programming. The developed tool has been successfully integrated into the PAKCS compiler for the language Curry.

