Vojin Jovanovic is a third year PhD student working on high-performance embedded DSLs in the LAMP laboratory at EPFL. He designed Jet, a Scala embedded DSL for big-data processing, executable on both Hadoop and Spark. He developed a loop fusion transformation, one of the core optimizations in the LMS framework. His current work focuses on DSL embedding with Scala macros and the cost estimation of annotated Scala code.
Domain-specific languages (DSLs) are good for both productivity and program performance. However, developing a DSL and related tools requires tremendous amounts of work. On the other hand, embedded DSLs alleviate the pain of DSL construction by reusing the machinery of the host language. Embedding comes with the price as complete program information is usually lost, yielding programs that typically have low performance
In this talk we will explain the Scala mix-in composition, abstract data types, implicit conversions and macros. Then we will show how these Scala features allow easy development of embedded DSLs which preserve complete program knowledge. This allows aggressive optimizations that lead to high program performance. We will conclude with performance results of DSLs developed by the described techniques.