High-Performance Cross-Language Interoperability in a Multi-language Runtime

被引:0
|
作者
Grimmer, Matthias [1 ]
Seaton, Chris [2 ]
Schatz, Roland [3 ]
Wurthinger, Thomas [4 ]
Moessenboeck, Hanspeter [1 ]
机构
[1] Johannes Kepler Univ Linz, Linz, Austria
[2] Oracle Labs, Reading, Berks, England
[3] Oracle Labs, Vienna, Austria
[4] Oracle Labs, Baden, Switzerland
关键词
cross-language; language interoperability; virtual machine; optimization; language implementation;
D O I
10.1145/2816707.2816714
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Programmers combine different programming languages because it allows them to use the most suitable language for a given problem, to gradually migrate existing projects from one language to another, or to reuse existing source code. However, existing cross-language mechanisms suffer from complex interfaces, insufficient flexibility, or poor performance. We present the TruffleVM, a multi-language runtime that allows composing different language implementations in a seamless way. It reduces the amount of required boilerplate code to a minimum by allowing programmers to access foreign functions or objects by using the notation of the host language. We compose language implementations that translate source code to an intermediate representation (IR), which is executed on top of a shared runtime system. Language implementations use language-independent messages that the runtime resolves at their first execution by transforming them to efficient foreign-language-specific operations. The TruffleVM avoids conversion or marshaling of foreign objects at the language boundary and allows the dynamic compiler to perform its optimizations across language boundaries, which guarantees high performance. This paper presents an implementation of our ideas based on the Truffle system and its guest language implementations JavaScript, Ruby, and C.
引用
收藏
页码:78 / 90
页数:13
相关论文
共 50 条
  • [1] Cross-Language Interoperability in a Multi-Language Runtime
    Grimmer, Matthias
    Schatz, Roland
    Seaton, Chris
    Wuerthinger, Thomas
    Lujan, Mikel
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2018, 40 (02):
  • [2] High-performance language interoperability for scientific computing through Babel
    Epperly, Thomas G. W.
    Kumfert, Gary
    Dahlgren, Tamara
    Ebner, Dietmar
    Leek, Jim
    Prantl, Adrian
    Kohn, Scott
    INTERNATIONAL JOURNAL OF HIGH PERFORMANCE COMPUTING APPLICATIONS, 2012, 26 (03) : 260 - 274
  • [3] Cross-language plagiarism detection
    Potthast, Martin
    Barron-Cedeno, Alberto
    Stein, Benno
    Rosso, Paolo
    LANGUAGE RESOURCES AND EVALUATION, 2011, 45 (01) : 45 - 62
  • [4] Cross-language plagiarism detection
    Martin Potthast
    Alberto Barrón-Cedeño
    Benno Stein
    Paolo Rosso
    Language Resources and Evaluation, 2011, 45 : 45 - 62
  • [5] ON CROSS-LANGUAGE IMAGE ANNOTATIONS
    Rui, Xiaoguang
    Yu, Nenghai
    Li, Mingjing
    Wu, Lei
    ICME: 2009 IEEE INTERNATIONAL CONFERENCE ON MULTIMEDIA AND EXPO, VOLS 1-3, 2009, : 1608 - 1611
  • [6] Compressive approaches for cross-language multi-document summarization
    Pontes, Elvys Linhares
    Huet, Stephane
    Torres-Moreno, Juan-Manuel
    Linhares, Andrea Carneiro
    DATA & KNOWLEDGE ENGINEERING, 2020, 125
  • [7] Reading and Writing Performance Optimization of Cross-Language FUSE Framework
    Gu R.
    Luo Y.-L.
    Qiu L.-W.
    Wang Z.-K.
    Dai H.-P.
    Huang Y.-H.
    Tien Tzu Hsueh Pao/Acta Electronica Sinica, 2023, 51 (06): : 1590 - 1606
  • [8] Compiling for Multi-language Task Migration
    Feeley, Marc
    ACM SIGPLAN NOTICES, 2016, 51 (02) : 63 - 77
  • [9] Practical Partial Evaluation for High-Performance Dynamic Language Runtimes
    Wurthinger, Thomas
    Wimmer, Christian
    Humer, Christian
    Woess, Andreas
    Stadler, Lukas
    Seaton, Chris
    Duboscq, Gilles
    Simon, Doug
    Grimmer, Matthias
    ACM SIGPLAN NOTICES, 2017, 52 (06) : 662 - 676