DLS 2021
Sun 17 - Fri 22 October 2021 Chicago, Illinois, United States
co-located with SPLASH 2021
Tue 19 Oct 2021 14:40 - 15:05 at Zurich C - DLS Talks 1 Chair(s): Arjun Guha
Tue 19 Oct 2021 22:40 - 23:05 at Zurich C - DLS Talks 1

The first Futamura projection enables compilation and high performance code generation of user programs by partial evaluation of language interpreters.
Previous work has shown that online partial evaluation can yield the same peak performance as a specialized JIT compiler.
However, this comes with the downside of additional compile time:
Online partial evaluation of language interpreters has to specialize interpreter code on the fly to the dynamic types used at run time to create efficient target code.
As a result, the time spent on partial evaluation itself is a significant contributor to the overall compile time of a method.

The second Futamura projection solves this problem by self-applying partial evaluation on the partial evaluation algorithm, effectively generating language-specific compilers from interpreters.
This typically reduces compilation time compared to the first projection.
Previous work employed the second projection to some extent, however we are not aware of any usage of the generic second Futamura projection in a state-of-the-art language runtime.

To solve the problems of self-application and code-size explosion, this paper proposes \emph{CompGen}, an approach based on code generation of subsets of language interpreters.
It is loosely based upon the idea of the second Futamura projection.
Our implementation of CompGen for GraalVM shows that our usage of a novel code-generation algorithm allows us to generate efficient compilers that emit fast target programs which easily outperform the first Futamura projection in compilation time.
We evaluated our approach with the high-performance JavaScript implementation of GraalVM and standard JavaScript benchmarks, showing that our approach achieves $>2X$ speedups of partial evaluation.

Tue 19 Oct

Displayed time zone: Central Time (US & Canada) change

13:50 - 15:10
DLS Talks 1DLS 2021 at Zurich C +8h
Chair(s): Arjun Guha Northeastern University
13:50
25m
Talk
Analyzing Permission Transfer Channels for Dynamically Typed LanguagesResearch PaperVirtual
DLS 2021
Théo Rogliano Inria; University of Lille; CNRS; Centrale Lille; CRIStAL, Guillermo Polito CNRS; CRIStAL; University of Lille; Centrale Lille; Inria, Luc Fabresse IMT Lille Douai; Institut Mines-Télécom; University of Lille; Centre for Digital Systems, Stéphane Ducasse Inria; University of Lille; CNRS; Centrale Lille; CRIStAL
DOI
14:15
25m
Paper
On Design and Use of First-Class Environments in RResearch PaperVirtual
DLS 2021
Aviral Goel Northeastern University, Jan Vitek Northeastern University; Czech Technical University
14:40
25m
Paper
CompGen: Generation of Fast JIT Compilers in a Multi-language VMResearch PaperVirtual
DLS 2021
Florian Latifi JKU Linz, David Leopoldseder Oracle Labs, Christian Wimmer Oracle Labs, Hanspeter Mössenböck JKU Linz
DOI
21:50 - 23:10
DLS Talks 1DLS 2021 at Zurich C
21:50
25m
Talk
Analyzing Permission Transfer Channels for Dynamically Typed LanguagesResearch PaperVirtual
DLS 2021
Théo Rogliano Inria; University of Lille; CNRS; Centrale Lille; CRIStAL, Guillermo Polito CNRS; CRIStAL; University of Lille; Centrale Lille; Inria, Luc Fabresse IMT Lille Douai; Institut Mines-Télécom; University of Lille; Centre for Digital Systems, Stéphane Ducasse Inria; University of Lille; CNRS; Centrale Lille; CRIStAL
DOI
22:15
25m
Paper
On Design and Use of First-Class Environments in RResearch PaperVirtual
DLS 2021
Aviral Goel Northeastern University, Jan Vitek Northeastern University; Czech Technical University
22:40
25m
Paper
CompGen: Generation of Fast JIT Compilers in a Multi-language VMResearch PaperVirtual
DLS 2021
Florian Latifi JKU Linz, David Leopoldseder Oracle Labs, Christian Wimmer Oracle Labs, Hanspeter Mössenböck JKU Linz
DOI