Measuring the Effectiveness of Partial Evaluation in Functional Logic Languages
نویسندگان
چکیده
We introduce a framework for assessing the effectiveness of partial evaluators in functional logic languages. Our framework is based on properties of the rewrite system that models a functional logic program. Consequently, our assessment is independent of any specific language implementation or computing environment. We define several criteria for measuring the cost of a computation: number of steps, number of function applications, and pattern matching effort. Most importantly, we express the cost of each criterion by means of recurrence equations over algebraic data types, which can be automatically inferred from the partial evaluation process itself. In some cases, the equations can be solved by transforming their arguments from arbitrary data types to natural numbers. In other cases, it is possible to estimate the improvement of a partial evaluation by analyzing the associated cost recurrence equations.
منابع مشابه
A Formal Approach to Reasoning about the Effectiveness of Partial Evaluation
We introduce a framework for assessing the effectiveness of partial evaluators in functional logic languages. Our framework is based on properties of the rewrite system that models a functional logic program. Consequently, our assessment is independent of any specific language implementation or computing environment. We define several criteria for measuring the cost of a computation: number of ...
متن کاملMeasuring the E ectiveness of PartialEvaluation in Functional Logic
We introduce a framework for assessing the eeectiveness of partial evaluators in functional logic languages. Our framework is based on properties of the rewrite system that models a functional logic program. Consequently, our assessment is independent of any speciic language implementation or computing environment. We deene several criteria for measuring the cost of a computation: number of ste...
متن کاملNarrowing-Driven Partial Evaluation of Functional Logic Programs
Languages that integrate functional and logic programming with a complete operational semantics are based on narrowing, a unification-based goal-solving mechanism which subsumes the reduction principle of functional languages and the resolution principle of logic languages. Formal methods of transformation of functional logic programs can be based on this well-established operational semantics....
متن کاملSpecialization of functional logic programs based on needed narrowing
Many functional logic languages are based on narrowing, a unification-based goal-solving mechanism which subsumes the reduction mechanism of functional languages and the resolution principle of logic languages. Needed narrowing is an optimal evaluation strategy which constitutes the basis of modern (narrowing-based) lazy functional logic languages. In this work, we present the fundamentals of p...
متن کاملPartial Evaluation of Functional Logic Programs in Rewriting-based Languages
The aim of this work is to describe a procedure for the partial evaluation of functional logic languages based on rewriting. In this work, we will use the Escher language as an example of a (concurrent) functional logic language which has rewriting as its computational mechanism. Partial evaluation is a program transformation technique which, by performing some computation and abstraction at co...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2000