Magic with Dynamo -- Flexible Cross-Component Linking for Java with Invokedynamic
Identifikátory výsledku
Kód výsledku v IS VaVaI
<a href="https://www.isvavai.cz/riv?ss=detail&h=RIV%2F49777513%3A23520%2F16%3A43928996" target="_blank" >RIV/49777513:23520/16:43928996 - isvavai.cz</a>
Výsledek na webu
<a href="http://dx.doi.org/10.4230/LIPIcs.ECOOP.2016.12" target="_blank" >http://dx.doi.org/10.4230/LIPIcs.ECOOP.2016.12</a>
DOI - Digital Object Identifier
<a href="http://dx.doi.org/10.4230/LIPIcs.ECOOP.2016.12" target="_blank" >10.4230/LIPIcs.ECOOP.2016.12</a>
Alternativní jazyky
Jazyk výsledku
angličtina
Název v původním jazyce
Magic with Dynamo -- Flexible Cross-Component Linking for Java with Invokedynamic
Popis výsledku v původním jazyce
Modern software systems are not built from scratch. They use functionality provided by libraries. These libraries evolve and often upgrades are deployed without the systems being recompiled. In Java, this process is particularly error-prone due to the mismatch between source and binary compatibility, and the lack of API stability in many popular libraries. We propose a novel approach to mitigate this problem based on the use of invokedynamic instructions for cross-component method invocations. The dispatch mechanism of invokedynamic is used to provide on-the-fly signature adaptation. We show how this idea can be used to construct a Java compiler that produces more resilient bytecode. We present the dynamo compiler, a proof-of-concept implemented as a javac post compiler. We evaluate our approach using several benchmark examples and two case studies showing how the dynamo compiler can prevent certain types of linkage and stack overflow errors that have been observed in real-world systems.
Název v anglickém jazyce
Magic with Dynamo -- Flexible Cross-Component Linking for Java with Invokedynamic
Popis výsledku anglicky
Modern software systems are not built from scratch. They use functionality provided by libraries. These libraries evolve and often upgrades are deployed without the systems being recompiled. In Java, this process is particularly error-prone due to the mismatch between source and binary compatibility, and the lack of API stability in many popular libraries. We propose a novel approach to mitigate this problem based on the use of invokedynamic instructions for cross-component method invocations. The dispatch mechanism of invokedynamic is used to provide on-the-fly signature adaptation. We show how this idea can be used to construct a Java compiler that produces more resilient bytecode. We present the dynamo compiler, a proof-of-concept implemented as a javac post compiler. We evaluate our approach using several benchmark examples and two case studies showing how the dynamo compiler can prevent certain types of linkage and stack overflow errors that have been observed in real-world systems.
Klasifikace
Druh
D - Stať ve sborníku
CEP obor
IN - Informatika
OECD FORD obor
—
Návaznosti výsledku
Projekt
<a href="/cs/project/ED1.1.00%2F02.0090" target="_blank" >ED1.1.00/02.0090: NTIS - Nové technologie pro informační společnost</a><br>
Návaznosti
P - Projekt vyzkumu a vyvoje financovany z verejnych zdroju (s odkazem do CEP)
Ostatní
Rok uplatnění
2016
Kód důvěrnosti údajů
S - Úplné a pravdivé údaje o projektu nepodléhají ochraně podle zvláštních právních předpisů
Údaje specifické pro druh výsledku
Název statě ve sborníku
30th European Conference on Object-Oriented Programming (ECOOP 2016)
ISBN
978-3-95977-014-9
ISSN
1868-8969
e-ISSN
—
Počet stran výsledku
25
Strana od-do
1-25
Název nakladatele
Schloss Dagstuhl
Místo vydání
Schloss Dagstuhl-Leibniz-Zentrum für Informatik
Místo konání akce
Řím
Datum konání akce
18. 7. 2016
Typ akce podle státní příslušnosti
WRD - Celosvětová akce
Kód UT WoS článku
—