Lightweight Modular Staging and Embedded Compilers: Abstraction without Regret for High-Level High-Performance Programming

Tiark Rompf · 2012

Abstract Programs expressed in a high-level programming language need to be translated to a low-levelmachine dialect for execution. This translation is usually accomplished by a compiler, whichis able to translate any legal program to equivalent low-level code. But for individual sourceprograms, automatic translation does not always deliver good results: Software engineeringpractice demands generalization and abstraction, whereas high performance demands spe-cialization and concretization. These goals are at odds, and compilers can only rarely translateexpressive high-level programs to modern hardware platforms in a way that makes best use ofthe available resources.Explicit program generation is a promising alternative to fully automatic translation.Instead of writing down the program and relying on a compiler for translation, developerswrite a program generator, which produces a specialized, efficient, low-level program as itsoutput. However, developing high-quality program generators requires a very large effort thatis often hard to amortize.In this thesis, we propose a hybrid design: Integrate compilers into programs so thatprograms can take control of the translation process, but rely on libraries of common compilerfunctionality for help.We present

Read the paper · More papers on PaperTik