Results 1  10
of
13
Tree Automata for Code Selection
, 1994
"... We deal with the generation of code selectors in compiler backends. The fundamental concepts are systematically derived from the theory of regular tree grammars and finite tree automata. We use this general approach to construct algorithms that generalize and improve existing methods. 1 Introduction ..."
Abstract

Cited by 27 (0 self)
 Add to MetaCart
We deal with the generation of code selectors in compiler backends. The fundamental concepts are systematically derived from the theory of regular tree grammars and finite tree automata. We use this general approach to construct algorithms that generalize and improve existing methods. 1 Introduction A code generator for a compiler is applied to an intermediate representation (IR) of the input program that has been computed during preceding phases of compilation. This intermediate representation can be viewed as code for an abstract machine. The task of code generation is to translate this code into an efficient sequence of instructions for a concrete machine. Besides register allocation and instruction scheduling (for processors with pipelined architectures), code selection, i.e., the selection of instructions, is one subtask of code generation. It is especially important for CISC (Complex I nstruction Set Computer) architectures where there are usually many possibilities to generat...
Lazy rewriting on eager machinery
 ACM Transactions on Programming Languages and Systems
, 2000
"... The article introduces a novel notion of lazy rewriting. By annotating argument positions as lazy, redundant rewrite steps are avoided, and the termination behaviour of a term rewriting system can be improved. Some transformations of rewrite rules enable an implementation using the same primitives a ..."
Abstract

Cited by 23 (1 self)
 Add to MetaCart
The article introduces a novel notion of lazy rewriting. By annotating argument positions as lazy, redundant rewrite steps are avoided, and the termination behaviour of a term rewriting system can be improved. Some transformations of rewrite rules enable an implementation using the same primitives as an implementation of eager rewriting. 1
A compiler for rewrite programs in associativecommutative theories
, 1998
"... We address the problem of term normalisation modulo associativecommutative (AC) theories, and describe several techniques for compiling manytoone AC matching and reduced term construction. The proposed matching method is based on the construction of compact bipartite graphs, and is designed for w ..."
Abstract

Cited by 12 (2 self)
 Add to MetaCart
We address the problem of term normalisation modulo associativecommutative (AC) theories, and describe several techniques for compiling manytoone AC matching and reduced term construction. The proposed matching method is based on the construction of compact bipartite graphs, and is designed for working very efficiently on specific classes of AC patterns. We show how to refine this algorithm to work in an eager way. General patterns are handled through a program transformation process. Variable instantiation resulting from the matching phase and construction of the resulting term are also addressed. Our experimental results with the system ELAN provide strong evidence that compilation of manytoone AC normalisation using the combination of these few techniques is crucial for improving the performance of algebraic programming languages.
Compact Normalisation Trace via Lazy Rewriting
, 2001
"... Innermost strategies are usually used in compiling term rewriting systems (TRSs) since they allow to eciently build result terms in a bottomup fashion. However, innermost strategies do not always give the shortest normalising derivation. In many cases, using an appropriate laziness annotation on th ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
Innermost strategies are usually used in compiling term rewriting systems (TRSs) since they allow to eciently build result terms in a bottomup fashion. However, innermost strategies do not always give the shortest normalising derivation. In many cases, using an appropriate laziness annotation on the arguments of function symbols, we evaluate lazy arguments only if it is necessary and hence, get a shorter derivation to normal forms while avoiding nonterminating reductions. We provide in this work a transformation of annotated TRSs, that allows to compute normal forms using an innermost strategy and to extract lazy derivations in the original TRS from normalising derivations in the transformed TRS. We apply our result to improve the eciency of equational reasoning in the Coq proof assistant using ELAN as an external rewriting engine.
Compilation Techniques for AssociativeCommutative Normalisation
 In Proceedings of International Workshop on Theory and Practice of Algebraic Specifications ASF+SDF 97, Workshops in Computing
, 1997
"... We consider the problem of term normalisation modulo associativecommutative (AC) theories and describe several techniques for compiling manytoone AC matching and reduced term construction. The proposed method, illustrated on three examples, is based on compact bipartite graphs, and is designed ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
We consider the problem of term normalisation modulo associativecommutative (AC) theories and describe several techniques for compiling manytoone AC matching and reduced term construction. The proposed method, illustrated on three examples, is based on compact bipartite graphs, and is designed for working very efficiently on specific classes of AC patterns. Our experimental results provide strong evidence that compilation of manytoone AC normalisation is a useful technique for improving the performance of algebraic programming languages. 1 Introduction Term rewriting techniques are used in software development, compiler generation, computer algebra, theorem provers, more recently in constraint solving [6]. Several programming languages (for example ASF+SDF [12], OBJ [7], or Maude [3]) use term rewriting as the execution engine of their programs. Algebraic structures often involve axioms like associativecommutative (AC) properties of function symbols, that cannot be used as...
Optimizing pattern matching compilation by program transformation
"... Motivated by the promotion of rewriting techniques and their use in major industrial applications, we have designed Tom: a pattern matching layer on top of conventional programming languages. The main originality is to support pattern matching against native datastructures like objects or records. ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Motivated by the promotion of rewriting techniques and their use in major industrial applications, we have designed Tom: a pattern matching layer on top of conventional programming languages. The main originality is to support pattern matching against native datastructures like objects or records. While crucial to the efficient implementation of functional languages as well as rewrite rule based languages, in our case, this combination of algebraic constructs with arbitrary native datastructures makes the pattern matching algorithm more difficult to compile. In particular, wellknown manytoone automatonbased techniques cannot be used. We present a twostages approach which first compiles pattern matching constructs in a naive way, and then optimize the resulting code by program transformation using rewriting. As a benefit, the compilation algorithm is simpler, easier to extend, and the resulting pattern matching code is almost as efficient as best known implementations.
The Q Programming Language
 Johannes Gutenberg University
, 2002
"... This document describes version 4.5 of the Q programming language and system. ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
This document describes version 4.5 of the Q programming language and system.
Compilation of AssociativeCommutative Normalisation with Strategies in ELAN
, 1997
"... We address the problem of term normalisation modulo associativecommutative (AC) theories with strategies, and describe several techniques for compiling manytoone AC matching and reduced term construction. The proposed matching method is based on the construction of compact bipartite graphs, and is ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We address the problem of term normalisation modulo associativecommutative (AC) theories with strategies, and describe several techniques for compiling manytoone AC matching and reduced term construction. The proposed matching method is based on the construction of compact bipartite graphs, and is designed for working very efficiently on specific classes of AC patterns. General patterns are handled through a program transformation process. To improve efficiency of term normalisation modulo AC, we propose a few solutions to share parts of terms thanks to a suitable term representation, avoid useless cases and failure in matching, take advantage of deterministic computations whenever possible, thanks to an eager matching algorithm easily combinable with the general one. Our experimental results in the system ELAN provide strong evidence that compilation of manytoone AC normalisation using the combination of these several techniques is useful for improving the performance of algebraic...
Preface
, 2007
"... provided the copyright notice and this permission notice are preserved on all copies. ..."
Abstract
 Add to MetaCart
provided the copyright notice and this permission notice are preserved on all copies.
Abstract Q: A Functional Programming Language for Multimedia Applications
"... Q is a functional programming language based on term rewriting. Programs are collections of equations which are used to evaluate expressions in a symbolic fashion. Q comes with a set of extension modules which make it a viable tool for scientific programming, computer music, multimedia, and other ad ..."
Abstract
 Add to MetaCart
Q is a functional programming language based on term rewriting. Programs are collections of equations which are used to evaluate expressions in a symbolic fashion. Q comes with a set of extension modules which make it a viable tool for scientific programming, computer music, multimedia, and other advanced applications. In particular, Q provides special support for multimedia applications using PortAudio, libsndfile, libsamplerate, FFTW, MidiShare and OSC (including a SuperCollider interface). The paper gives a brief introduction to the Q language and its multimedia library, with a focus on the facilities for MIDI programming and the SuperCollider interface.