2004 · 57 citations · 13 references
ComputingComputer ScienceCompilersProgramming LanguagesSoftware EngineeringAbstract InterpretationAbstract Syntax TreesCode GenerationCompiler ConstructionData-flow AnalysisDomain-specific LanguagesBottom-up Rewrite SystemsCode Generation By Rewrite RulesCode OptimizationCompiler DesignProgram OptimizationProgram TransformationSource-level TransformationSource-to-source Translation
The use of a high-level, abstract coding style can greatly increase developer productivity. For numerical software, this can result in drastically reduced run-time performance. High-level, domain-specific optimisations can eliminate much of the overhead caused by an abstract coding style, but current compilers have poor support for domain-specific optimisation. We present CodeBoost, a source-to-source transformation tool for domain-specific optimisation of C++ programs. CodeBoost performs parsing, semantic analysis and pretty-printing, and transformations can be implemented either in the Stratego program transformation language, or as user-defined rewrite rules embedded within the C++ program. CodeBoost has been used with great success to optimise numerical applications written in the Sophus high-level coding style. We discuss the overall design of the CodeBoost transformation framework, and take a closer look at two important features of CodeBoost: user-defined rules and totem annotations. We also show briefly how CodeBoost is used to optimise Sophus code, resulting in applications that run twice as fast, or more.
13
Rex Jaeschke · ACM SIGPLAN Notices · 1998 · 544 citations · Full text
Shigeru Chiba · 1995 · 348 citations
Building program optimizers with rewriting strategies
Eelco Visser, Zine-el-Abidine Benaissa, Andrew Tolmach · 1998 · 251 citations · Full text
Mark van den Brand, H. A. de Jong, Paul Klint et al. · Software Practice and Experience · 2000 · 196 citations · Full text