Narrowing [53-55] is a generalization of the term rewriting
, allowing free variables in terms and replacing pattern matching by unification in order to reduce these terms.
All evaluation in the prototype s Lucas-Interpreter is done by term rewriting
on Isabelle s terms, see [section]3.5 below; in this section some of respective preparations are described.
Among the topics are an evaluation of a pure embedded domain-specific language for strategic term rewriting
, design patterns and principles for internal domain-specific languages, a formal semantics of Kermata, languages for spatial computing, and the design and transformation of a domain-specific language for reconfigurable conveyor systems.
It also plays an important role in the definition of some algorithms of unification modulo equational theories that are defined by confluent term rewriting
Although term rewriting
can be used for program optimization purposes, there are only few works on it.
It has been studied in the theory of data bases [Fernandez and Minker 1991; Volger 1989a,b], introduced in the theory of algebraic specifications and conditional term rewriting
[Goguen 1989; Wolter and Lowe 1992; Kaplan 19871, and utilized for specifications of nondeterminism [Walicki and Meldal 1995c,a; Walicki 19931.
In another class, we spent the term rewriting
The direct sum of two term rewriting
systems is the union of systems having disjoint sets of function symbols.
In order to solve this inefficiency, lazy evaluation is usually performed by graph rewriting [Staples 1980] instead of term rewriting
. In graph rewriting, the two arguments of g(x,x) point to the same node in the graph, so that in g(t,t) the thunks in t are not duplicated.
Note that, if logical variables do not occur in the goal, the narrowing evaluation is akin to functional languages (term rewriting
General Terms: Languages Additional Key Words and Phrases: Abstract machine, automata, specificity ordering, term rewriting
Furthermore, equational reasoning (of which term rewriting
is a special case) applies equally to closed and open terms.