Definitional Trees
نویسنده
چکیده
Rewriting is a computational paradigm that specifies the actions, but not the control. We introduce a hierarchical structure representing, at a high level of abstraction, a form of control. Its application solves a specific problem arising in the design and implementation of inherently sequential, lazy, functional programming languages based on rewriting. For example, we show how to extend the expressive power of Log(F ) and how to improve the efficiency of an implementation of BABEL. Our framework provides a notion of degree of parallelism of an operation and shows that the elements of a necessary set of redexes are related by an and-or relation. Both concepts find application in parallel implementations of rewriting. In an environment in which computations can be executed in parallel we are able to detect sequential computations in order to minimize overheads and/or optimize execution. Conversely, we are able to detect when inherently sequential computations can be executed in parallel without performing unnecessary rewrites.
منابع مشابه
Analysing Definitional Trees: Looking for Determinism1
This paper describes how high level implementations of (needed) narrowing into Prolog can be improved by analysing definitional trees. First, we introduce a refined representation of definitional trees that handles properly the knowledge about the inductive positions of a pattern. The aim is to take advantage of the new representation of definitional trees to improve the aforementioned kind of ...
متن کاملThe logical basis of phylogenetic taxonomy.
Phylogenetic taxonomy, like modern Linnean taxonomy, was modeled on a phylogenetic tree rather than a cladogram and, like its predecessor, perpetuates the use of morphology as a means of recognizing clades. Both practices have generated confusion in graphical representation, operational terminology, and definitional rationale in phylogenetic taxonomy, the history of which is traced. The followi...
متن کاملRefined Definitional Trees and Prolog Implementations of Narrowing
This paper describes how high level implementations of (needed) narrowing into Prolog can be improved by introducing a refined representation of definitional trees that handles properly the knowledge about the inductive positions of a pattern. We define some generic algorithms that allow us to transform a functional logic program into a set of Prolog clauses which incorporates some refinements ...
متن کاملA Higher-Order Demand-Driven Narrowing Calculus with Definitional Trees
We generalize the Constructor-based ReWriting Logic CRWL to the setting of the simply typed λ-calculus, where theories are presented by conditional overlapping fully extended pattern rewrite systems. We claim that this logic is useful for higher-order functional-logic programming, and propose a Higher-Order Lazy Narrowing calculus HOLNDT for answering joinability and reducibility queries, in wh...
متن کاملAnalysing Definitional Trees: Looking for Determinism
• Needed Narrowing (NN) is the standard operational mechanism of functional logic languages. • The definition of NN makes use of the notion of a definitional tree. • A Definitional tree is a structure which contains all the information about the program rules defining a function and guides the computation. • A great effort has been done to provide these languages with high level implementations...
متن کاملDynamic-Cut with Definitional Trees
The detection of deterministic computations at run-time can be used to introduce dynamic cuts pruning the search space and thus increasing the efficiency of Functional-Logic systems. This idea was introduced in an early work of R. Loogen and S. Winkler. However the proposal of these authors cannot be used in current implementations because it did not consider non-deterministic functions and was...
متن کامل