Summary: Definitional Trees
Sergio Antoy ?
Department of Computer Science
Portland State University
Portland, Oregon 972070751
Abstract. 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 andor 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 sequen
tial 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.
1 Introduction and Motivations