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

Date

2010-09

Authors

Yi, Qing

Journal Title

Journal ISSN

Volume Title

Publisher

UTSA Department of Computer Science

Abstract

We 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. We 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-state-machine-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.

Description

Keywords

Citation

Department

Computer Science