Optimizing Higher-Order Functions in Scala

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%.


Presented at:
Third International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems, Paphos, Cyprus, July 7, 2008
Year:
2008
Keywords:
Laboratories:




 Record created 2008-09-25, last modified 2018-03-17

n/a:
Download fulltext
PDF

Rate this document:

Rate this document:
1
2
3
 
(Not yet reviewed)