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%
Abstract Program generators for high performance libraries are an appealing solution to the recurrin...
Scala is a programming language that combines the object-oriented and functional programming paradig...
Datatype-generic programming involves parametrization of programs by the shape of data, in the form ...
Scala is a generic object-oriented programming language with higher-order abstractions. Programmin...
Production compilers for programming languages face multiple requirements. They should be correct, a...
Abstract: Scala a programming language combines the feature of object oriented and functional progra...
Parametric polymorphism in Scala suffers from the usual drawback of erasure on the Java Virtual Mach...
Scala is a powerful language which cur- rently provides a built-in library for non- strict Views wit...
In high-level programming languages, programmers do not need to worry about certain implementation d...
In the presence of parametric polymorphism, erasure-based languages such as Java and Scala handle pr...
Program generators for high performance libraries are an appealing solution to the recurring problem...
Modern programming languages such as Scala, Java and C# make extensive use of collections. A collect...
Datatype-generic programming (DGP) involves parametrization of programs by the shape of data, in the...
Inlining is an optimization that replaces a call to a function with that function’s body. This optim...
Datatype-generic programming (DGP) involves parametrization of programs by the shape of data, in the...
Abstract Program generators for high performance libraries are an appealing solution to the recurrin...
Scala is a programming language that combines the object-oriented and functional programming paradig...
Datatype-generic programming involves parametrization of programs by the shape of data, in the form ...
Scala is a generic object-oriented programming language with higher-order abstractions. Programmin...
Production compilers for programming languages face multiple requirements. They should be correct, a...
Abstract: Scala a programming language combines the feature of object oriented and functional progra...
Parametric polymorphism in Scala suffers from the usual drawback of erasure on the Java Virtual Mach...
Scala is a powerful language which cur- rently provides a built-in library for non- strict Views wit...
In high-level programming languages, programmers do not need to worry about certain implementation d...
In the presence of parametric polymorphism, erasure-based languages such as Java and Scala handle pr...
Program generators for high performance libraries are an appealing solution to the recurring problem...
Modern programming languages such as Scala, Java and C# make extensive use of collections. A collect...
Datatype-generic programming (DGP) involves parametrization of programs by the shape of data, in the...
Inlining is an optimization that replaces a call to a function with that function’s body. This optim...
Datatype-generic programming (DGP) involves parametrization of programs by the shape of data, in the...
Abstract Program generators for high performance libraries are an appealing solution to the recurrin...
Scala is a programming language that combines the object-oriented and functional programming paradig...
Datatype-generic programming involves parametrization of programs by the shape of data, in the form ...