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] Cross-Language Interoperability in a Multi-Language Runtime (vol 40, 8, 2018)
    Grimmer
    Mossenbock, Hanspeter
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2018, 40 (04):
  • [3] The Challenge of Cross-Language Interoperability
    Chisnall, David
    COMMUNICATIONS OF THE ACM, 2013, 56 (12) : 50 - 56
  • [4] Cross-Language Interoperability of Heterogeneous Code
    Stratikopoulos, Athanasios
    Blanaru, Florin
    Fumero, Juan
    Xekalaki, Maria
    Papadakis, Orion
    Kotselidis, Christos
    COMPANION PROCEEDINGS OF THE 7TH INTERNATIONAL CONFERENCE ON THE ART, SCIENCE, AND ENGINEERING OF PROGRAMMING, PROGRAMMING 2023, 2023, : 17 - 21
  • [5] SuperContra: Cross-Language, Cross-Runtime Contracts As a Service
    Dimopoulos, Stratos
    Krintz, Chandra
    Wolski, Rich
    Gupta, Anand
    2015 IEEE INTERNATIONAL CONFERENCE ON CLOUD ENGINEERING (IC2E 2015), 2015, : 283 - 286
  • [6] Language interoperability mechanisms for high-performance scientific applications
    Cleary, A
    Kohn, S
    Smith, SG
    Smolinski, B
    OBJECT ORIENTED METHODS FOR INTEROPERABLE SCIENTIFIC AND ENGINEERING COMPUTING, PROCEEDINGS, 1999, : 30 - 39
  • [7] Multi-language programming environments for high performance Java computing
    Univ of Westminster, Harrow, United Kingdom
    Sci Program, 2 (139-146):
  • [8] On Multi-language Abstraction Towards a Static Analysis of Multi-language Programs
    Buro, Samuele
    Crole, Roy L.
    Mastroeni, Isabella
    STATIC ANALYSIS (SAS 2020), 2020, 12389 : 310 - 332
  • [9] On multi-language abstraction: Towards a static analysis of multi-language programs
    Buro, Samuele
    Crole, Roy
    Mastroeni, Isabella
    FORMAL METHODS IN SYSTEM DESIGN, 2023, 65 (1) : 4 - 38
  • [10] Multi-language synchronization
    Ennals, Robert
    Gay, David
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2007, 4421 : 475 - +