Task migration allows a running program to continue its execution in a different destination environment. Increasingly, execution environments are defined by combinations of cultural and technological constraints, affecting the choice of host language, libraries and tools. A compiler supporting multiple target environments and task migration must be able to serialize continuations and then deserialize and continue their execution, ideally, even if the language of the destination environment is different. In this paper, we propose a compilation approach based on a virtual machine that strikes a balance between implementation portability and efficiency. We explain its implementation within a Scheme compiler targetting JavaScript, PHP, Python, Ruby and Java - some of the most popular host languages for web applications. As our experiments show, this approach compares well with other Scheme compilers targetting high-level languages in terms of execution speed, being sometimes up to 3 orders of magnitude faster.
Tue 27 OctDisplayed time zone: Eastern Time (US & Canada) change
13:30 - 15:00 | |||
13:30 22mTalk | Compiling for Multi-Language Task Migration DLS | ||
13:52 22mTalk | High-Performance Cross-Language Interoperability in a Multi-Language Runtime DLS Matthias Grimmer Johannes Kepler University Linz, Chris Seaton Oracle Labs / University of Manchester, Roland Schatz Johannes Kepler University Linz, Thomas Wuerthinger Oracle Labs, Hanspeter Mössenböck Johannes Kepler University Linz | ||
14:15 22mTalk | Java-to-JavaScript Translation via Structured Control Flow Reconstruction of Compiler IR DLS David Leopoldseder Johannes Kepler University Linz, Lukas Stadler Oracle Labs, Christian Wimmer Oracle Labs, Hanspeter Mössenböck Johannes Kepler University Linz | ||
14:37 22mTalk | Language Independent Storage Strategies for Tracing JIT based VMs DLS Tim Felgentreff HPI, Germany, Tobias Pape Hasso-Plattner-Institute, Potsdam, Robert Hirschfeld HPI, CF Bolz-Tereick King's College London , Anton Gulenko TU Berlin |