Results 1  10
of
30
Engineering a simple, efficient codegenerator generator
 ACM Letters on Programming Languages and Systems
, 1992
"... Many codegenerator generators use tree pattern matching and dynamic programming. This paper describes a simple program that generates matchers that are fast, compact, and easy to understand. It is simpler than common alternatives: 200–700 lines of Icon or 950 lines of C versus 3000 lines of C for T ..."
Abstract

Cited by 116 (5 self)
 Add to MetaCart
(Show Context)
Many codegenerator generators use tree pattern matching and dynamic programming. This paper describes a simple program that generates matchers that are fast, compact, and easy to understand. It is simpler than common alternatives: 200–700 lines of Icon or 950 lines of C versus 3000 lines of C for Twig and 5000 for burg. Its matchers run up to 25 times faster than Twig’s, They are necessarily slower than burg’s BURS (bottomup rewrite system) matchers, but they are more flexible and still practical. Categories and Subject Descriptors: D.3.4 [Programming Languages]: Processors—code generation; compilers; translator writing systems and compiler generators
Bottomup and Topdown Tree Series Transformations
 J. Autom. Lang. Combin
, 2000
"... We generalize bottomup tree transducers and topdown tree transducers to the concept of bottomup tree series transducer and topdown tree series transducer, respectively, by allowing formal tree series as output rather than trees, where a formal tree series is a mapping from output trees to some s ..."
Abstract

Cited by 37 (6 self)
 Add to MetaCart
We generalize bottomup tree transducers and topdown tree transducers to the concept of bottomup tree series transducer and topdown tree series transducer, respectively, by allowing formal tree series as output rather than trees, where a formal tree series is a mapping from output trees to some semiring. We associate two semantics with a tree series transducer: a mapping which transforms trees into tree series (for short: tree to tree series transformation or tts transformation), and a mapping which transforms tree series into tree series (for short: tree series transformation or tsts transformation). We show that the standard case of tree transducers is reobtained by choosing the boolean semiring under the tts semantics. Also, for each of the two types of tree series transducers and for both types of semantics, we prove a characterization which generalizes in a straightforward way the corresponding characterization result for the underlying tree transducer class. Mo...
A Kleene theorem for weighted tree automata
 Theory of Computing Systems
, 2002
"... In this paper we prove Kleene's result for tree series over a commutative and idempotent semiring A (which is not necessarily complete or continuous), i.e., the class of recognizable tree series over A and the class of rational tree series over A are equal. We show the result by direct automata ..."
Abstract

Cited by 21 (8 self)
 Add to MetaCart
(Show Context)
In this paper we prove Kleene's result for tree series over a commutative and idempotent semiring A (which is not necessarily complete or continuous), i.e., the class of recognizable tree series over A and the class of rational tree series over A are equal. We show the result by direct automatatheoretic constructions and prove their correctness.
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.
PhaseCoupled Mapping of Data Flow Graphs to Irregular Data Paths
 Embedded Systems
, 1999
"... . Many software compilers for embedded processors produce machine code of insufficient quality. Since for most applications software must meet tight code speed and size constraints, embedded software is still largely developed in assembly language. In order to eliminate this bottleneck and to enable ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
. Many software compilers for embedded processors produce machine code of insufficient quality. Since for most applications software must meet tight code speed and size constraints, embedded software is still largely developed in assembly language. In order to eliminate this bottleneck and to enable the use of highlevel language compilers also for embedded software, new code generation and optimization techniques are required. This paper describes a novel code generation technique for embedded processors with irregular data path architectures, such as typically found in fixedpoint DSPs.The proposed code generation technique maps data flow graph representation of a program into highly efficient machine code for a target processor modeled by instruction set behavior. High code quality is ensured by tight coupling of different code generation phases. In contrast to earlier works, mainly based on heuristics, our approach is constraintbased. An initial set of constraints on code generati...
Code selection by tree series transducers, in
 Proc. 9th Int. Conf. on Implementation and Application of Automata, Vol. 3317 of LNCS
, 2004
"... Abstract. In this paper we model code selection by tree series transducers. We are given an intermediate representation of some compiler as well as a machine grammar with weights, which reflect the number of machine cycles of the instructions. The derivations of the machine grammar are machine codes ..."
Abstract

Cited by 9 (0 self)
 Add to MetaCart
(Show Context)
Abstract. In this paper we model code selection by tree series transducers. We are given an intermediate representation of some compiler as well as a machine grammar with weights, which reflect the number of machine cycles of the instructions. The derivations of the machine grammar are machine codes. In general, a machine grammar is ambiguous and hence there might exist more than one derivation of an intermediate code. We show how to filter out a cheapest such derivation and thereby perform tree parsing and tree pattern matching using tree series transducers. 1
A New Algorithm for Linear Regular Tree Pattern Matching
 Theoretical Computer Science
, 1998
"... ..."
PatternDriven Automatic Parallelization
"... This paper describes a knowledgebased system for automatic parallelization of a wide class of sequential numeric codes operating on vectors and dense matrices, and for execution on distributed memory messagepassing multiprocessors. Its main feature is a fast and powerful pattern recognition tool t ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
This paper describes a knowledgebased system for automatic parallelization of a wide class of sequential numeric codes operating on vectors and dense matrices, and for execution on distributed memory messagepassing multiprocessors. Its main feature is a fast and powerful pattern recognition tool that locally identifies frequentlyoccurring computations and programming concepts in the source code. This tool works also for dusty deck codes that have been `encrypted' by former machinespecific code transformations. Successful pattern recognition guides sophisticated code transformations including local algorithm replacement such that the parallelized code need not emerge from the sequential program structure by just parallelizing the loops. It allows access to an expert's knowledge on useful parallel algorithms, available machinespecific library routines, and powerful program transformations, The partially restored program semantics also supports local array alignment, distribution and redistribution, and allows for faster and more exact prediction of the performance of the parallelized target code than is usually possible.
Does osubstitution preserve recognizability?
 IN PROC. 11TH INT. CONF. IMPLEM. AND APPL. OF AUTOMATA
, 2006
"... Substitution operations on tree series are at the basis of systems of equations (over tree series) and tree series transducers. Tree series transducers seem to be an interesting transformation device in syntactic pattern matching. In this contribution, it is shown that osubstitution preserves reco ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
Substitution operations on tree series are at the basis of systems of equations (over tree series) and tree series transducers. Tree series transducers seem to be an interesting transformation device in syntactic pattern matching. In this contribution, it is shown that osubstitution preserves recognizable tree series provided that the target tree series is linear and the semiring is idempotent, commutative, and continuous. This result is applied to prove that the range of the otts transformation computed by a linear recognizable tree series transducer is pointwise recognizable.
Processor modelling and code selection for retargetable compilation
 ACM Tr. Design Autom. of Electronic Systems
, 2001
"... Embedded processors in electronic systems typically are tuned to a few applications. Development of processor speci c compilers is prohibitively expensive and as a result such compilers, if existing, yield code of an unacceptable quality. To improve this code quality, wedeveloped a processor model t ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
Embedded processors in electronic systems typically are tuned to a few applications. Development of processor speci c compilers is prohibitively expensive and as a result such compilers, if existing, yield code of an unacceptable quality. To improve this code quality, wedeveloped a processor model that captures the connectivity, the parallelism and all architectural peculiarities of an embedded processor. We also implemented a retargetable and optimizing compiler working on this model. We present the graph based processor model and we formally de ne the code generation task, as binding the intermediate representation of an application to this model. We also present a new method for code selection, based on this processor model, that is capable of handling directed acyclic graphs instead of trees. Categories and Subject Descriptors: D.3.4 [Programming Languages]: ProcessorsCode generation�