Results 1 
8 of
8
Code generation based on formal BURS theory and heuristic search
 Acta Informatica
, 1997
"... BURS theory provides a powerful mechanism to efficiently generate pattern matches in a given expression tree. BURS, which stands for bottomup rewrite system, is based on term rewrite systems, to which costs are added. We formalise the
underlying theory, and derive an algorithm that computes all pat ..."
Abstract

Cited by 18 (2 self)
 Add to MetaCart
BURS theory provides a powerful mechanism to efficiently generate pattern matches in a given expression tree. BURS, which stands for bottomup rewrite system, is based on term rewrite systems, to which costs are added. We formalise the
underlying theory, and derive an algorithm that computes all pattern matches. This algorithm terminates if the term rewrite system is finite. We couple this algorithm with
the wellknown search algorithm A* that carries out pattern selection. The search algorithm is directed by a cost heuristic that estimates the minimum cost of code that
has yet to be generated. The advantage of using a search algorithm is that we need to compute only those costs that may be part of an optimal rewrite sequence (and not the costs of all possible rewrite sequences as in dynamic programming). A system that implements the algorithms presented in this work has been built.
Code Generation = A* + BURS
 Compiler Construction
, 1996
"... A system called BURS that is based on term rewrite systems and a search algorithm A* are combined to produce a code generator that generates optimal code. The theory underlying BURS is redeveloped, formalised and explained in this work. The search algorithm uses a cost heuristic that is derived fro ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
A system called BURS that is based on term rewrite systems and a search algorithm A* are combined to produce a code generator that generates optimal code. The theory underlying BURS is redeveloped, formalised and explained in this work. The search algorithm uses a cost heuristic that is derived from the term rewrite system to direct the search. The advantage of using a search algorithm is that we need to compute only those costs that may be part of an optimal rewrite sequence.
unknown title
, 1996
"... Code generation based on formal BURS theory and heuristic search ..."
(Show Context)
PatternMatching Algorithms based on Term Rewrite Systems?
"... Abstract Automatic code generators often contain pattern matchers that are based on tree grammars. In this work we generalise this approach by developing pattern matchers that are based on more powerful term rewrite systems. A pattern matcher based on a term rewrite system computes all the sequences ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract Automatic code generators often contain pattern matchers that are based on tree grammars. In this work we generalise this approach by developing pattern matchers that are based on more powerful term rewrite systems. A pattern matcher based on a term rewrite system computes all the sequences of rewrite rules that will reduce a given expression tree to a given goal. While the number of sequences of rewrite rules that are generated is typically enormous, the vast majority of sequences are in fact redundant. This redundancy is caused by the fact that many rewrite sequences are permutations of each other. A theory and a series of algorithms are systematically developed that identify and remove two types of redundant rewrite sequences. These algorithms terminate if rewrite sequences do not diverge. Key words: Term rewrite systems, code generation, pattern matching, formal techniques
Taxonomies of Regular Tree Algorithms
"... Abstract. Algorithms for acceptance, pattern matching and parsing of regular trees and the tree automata used in these algorithms have many applications, including instruction selection in compilers, implementation of term rewriting systems, and model checking. Many such tree algorithms and construc ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. Algorithms for acceptance, pattern matching and parsing of regular trees and the tree automata used in these algorithms have many applications, including instruction selection in compilers, implementation of term rewriting systems, and model checking. Many such tree algorithms and constructions for such tree automata appear in the literature, but some deficiencies existed, including: inaccessibility of theory and algorithms; difficulty of comparing algorithms due to variations in presentation style and level of formality; and lack of reference to the theory in many publications. An algorithm taxonomy is an effective means of bringing order to such a field. We report on two taxonomies of regular tree algorithms that we have constructed to deal with the deficiencies. The complete work has been presented in the PhD thesis of the first author.
The Systematic Development of a PatternMatching Algorithm using Term Rewrite Systems
, 1997
"... A term rewrite system is used to specify a pattern matcher in a code generator. The pattern matcher derived from the term rewrite system computes all the sequences of rewrite rules that will reduce a given expression tree to a given goal. While the number of sequences of rewrite rules that are gener ..."
Abstract
 Add to MetaCart
(Show Context)
A term rewrite system is used to specify a pattern matcher in a code generator. The pattern matcher derived from the term rewrite system computes all the sequences of rewrite rules that will reduce a given expression tree to a given goal. While the number of sequences of rewrite rules that are generated is typically enormous, many sequences are in fact redundant. A theory and accompanying algorithms are developed that identify and remove these redundant rewrite sequences. These algorithms terminate if the term rewrite system is finite. Keywords Term rewrite systems, code generation, pattern matching, formal techniques. 1 Introduction Term rewrite systems have traditionally been used to prove properties of abstract data types, implement functional languages and mechanise deduction systems, to name just a few areas. Term rewrite systems can also be used to specify part of the backend of a compilerthe socalled pattern matcher. In a pattern matcher, rewrite rules are used to rewrit...
Code Generation = A+BURS
"... Abstract. A system called BURS that is based on term rewrite systems and a search algorithm A are combined to produce a code generator that generates optimal code. The theory underlying BURS is redeveloped, formalised and explained in this work. The search algorithm uses a cost heuristic that is de ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. A system called BURS that is based on term rewrite systems and a search algorithm A are combined to produce a code generator that generates optimal code. The theory underlying BURS is redeveloped, formalised and explained in this work. The search algorithm uses a cost heuristic that is derived from the term rewrite system to direct the search. The advantage of using a search algorithm is that we need to compute only those costs that may be part of an optimal rewrite sequence. Key words: compiler generators, code generation, term rewrite systems, search algorithms, formal techniques Compiler building is a timeconsuming and errorprone activity. Building the frontend (i.e. scanner, parser and intermediatecode generator) is straightforward—the theory is well established, and there is ample tool support. The main problem lies with the backend, namely the code generator and optimiser—there is little theory and even less tool support. Generating a code generator from an abstract specification, also called automatic code generation, remains a very difficult problem.