Lightweight Modular Staging in Scala

Abstract: Abstraction and generalization are essential traits of high-level programming. Unfortunately, they stand in the way of performance, which demands just the opposite: specialization and concretization. This gap between productivity and performance is widening as programming languages add richer and richer abstraction facilities and hardware platforms become more and more specialized (SIMD units, GPUs, etc).

Fortunately, the very abstraction facilities of modern programming languages that are part of the problem can also be used as a remedy. The general idea is to apply abstraction to compose programs, not to execute programs. This talk will discuss techniques and frameworks, collectively called LMS (Lightweight Modular Staging), that enable generation of fast low-level code in a controlled way, while retaining most of the benefits of high-level programming.

Bio: Tiark Rompf is a researcher at Oracle Labs and EPFL. His work focuses on runtime code generation and advanced compiler technology. As a member of Martin Odersky’s team at EPFL he also contributed to Scala in other ways.

Created December 5, 2013 | Last modified December 17, 2013 | Contributions by Eelco Visser