A survey of rewriting strategies in program transformation systems

E Visser - Electronic Notes in Theoretical Computer Science, 2001 - Elsevier
Program transformation is used in a wide range of applications including compiler
construction, optimization, program synthesis, refactoring, software renovation, and reverse …

Documenting and automating collateral evolutions in Linux device drivers

Y Padioleau, J Lawall, RR Hansen… - Acm sigops operating …, 2008 - dl.acm.org
The internal libraries of Linux are evolving rapidly, to address new requirements and
improve performance. These evolutions, however, entail a massive problem of collateral …

[PDF][PDF] Playing by the rules: rewriting as a practical optimisation technique in GHC

SP Jones, A Tolmach, T Hoare - Haskell workshop, 2001 - Citeseer
We describe a facility for improving optimization of Haskell programs using rewrite rules.
Library authors can use rules to express domain-specific optimizations that the compiler …

Silver: An extensible attribute grammar system

E Van Wyk, D Bodin, J Gao, L Krishnan - Science of Computer …, 2010 - Elsevier
Attribute grammar specification languages, like many domain-specific languages, offer
significant advantages to their users, such as high-level declarative constructs and domain …

Constrained active appearance models

TF Cootes, CJ Taylor - Proceedings Eighth IEEE International …, 2001 - ieeexplore.ieee.org
Active Appearance Models (AAMs) have been shown to be useful for interpreting images of
deformable objects. Here we place the AAM matching algorithm in a statistical framework …

A survey of strategies in rule-based program transformation systems

E Visser - Journal of symbolic computation, 2005 - Elsevier
Program transformation is the mechanical manipulation of a program in order to improve it
relative to some cost function and is understood broadly as the domain of computation …

A pattern matching compiler for multiple target languages

M Pierre-Etienne, C Ringeissen, M Vittek - International Conference on …, 2003 - Springer
Many processes can be seen as transformations of tree-like data structures. In compiler
construction, for example, we continuously manipulate trees and perform tree …

JunGL: a scripting language for refactoring

M Verbaere, R Ettinger, O De Moor - Proceedings of the 28th …, 2006 - dl.acm.org
Refactorings are behaviour-preserving program transformations, typically for improving the
structure of existing code. A few of these transformations have been mechanised in …

Understanding collateral evolution in Linux device drivers

Y Padioleau, JL Lawall, G Muller - Proceedings of the 1st ACM SIGOPS …, 2006 - dl.acm.org
In a modern operating system (OS), device drivers can make up over 70% of the source
code. Driver code is also heavily dependent on the rest of the OS, for functions and data …

Proving correctness of compiler optimizations by temporal logic

D Lacey, ND Jones, E Van Wyk… - ACM SIGPLAN …, 2002 - dl.acm.org
Many classical compiler optimizations can be elegantly expressed using rewrite rules of
form: I⇒ I′ if φ, where I, I′ are intermediate language instructions and φ is a property …