From JVMLangSummit
Jump to navigationJump to search

Optimizing Higher-Order Functions in Scala

Iulian Dragos



Talk Abstract
Scala relies on libraries as the default mechanism for language extension. While this provides an elegant solution for growing the language, the performance penalty incurred by call-by-name parameters, boxing and anonymous functions is high. We show that inlining alone is not enough to remove this overhead, and present a solution based on decompilation of library code combined with inlining, dead code elimination, and copy propagation. We evaluate our approach on two language extensions, Java-like assert and C-like for-loops and show improvements of up to 45%.

Author Bio


Iulian Dragos is working on the Scala compiler since 2004, being responsible of the JVM backend and compiler optimizations. He is pursuing a PhD under the supervision of Martin Odersky, at EPFL, Switzerland. Before joining the Scala group, he worked as a software engineer on a C++ car dealer management system [1]. He is the author of the Google Data Scala client, a generic library based on XML pickling combinators.

Key Issues for Discussion (cooperative)

(please expand cooperatively) Talk:Scala