POET: A Scripting Language for Applying Parameterized Source-to-Source Program Transformations

The authors present POET, a scripting language designed for applying advanced program transformations to code in arbitrary programming languages as well as building ad-hoc translators between these languages. The authors have used POET to support a large number of compiler optimizations, including loop interchange, parallelization, blocking, fusion/ fission, strength reduction, scalar replacement, SSE vectorization, among others, and to fully support the code generation of several domain-specific languages, including automatic tester/timer generation, and automatically translating a finite-statemachine-based behavior modeling language to C++/Java code. This paper presents key design and implementation decisions of the POET language and show how to use various language features to significantly improve the productivity of supporting programmable compiler optimization for high performance computing and supporting ad-hoc code generation for various domain-specific languages.

Provided by: University of Texas Topic: Software Date Added: Aug 2010 Format: PDF

Find By Topic