Contemporary software often becomes vastly complex, and we are required to use a variety of technologies and different programming languages for its development. As interoperability between programming languages could cause high overhead resulting in a performance loss, it is important to examine how a current polyglot virtual machine with a compiler written in a high-level object-oriented language deals with it. OpenJDK's Project Metropolis presented the GraalVM, an open-source, high-performance polyglot virtual machine, mostly written in Java. This paper presents GraalVM's architecture and its features; furthermore, examining how it resolves common interoperability and performance problems. GraalVM makes software ecosystem productive when combining various programming languages, for example, Java, JavaScript, C/C++, Python, Ruby, R, and others. The vital part of GraalVM is the Graal compiler written in Java, which allows developers to maintain and optimize code faster, simpler, and more efficient, in comparison to traditional compilers in C/C++ languages. Graal can be used as a just-in-time (JIT) or as static, ahead-of-time (AOT) compiler. Graal is an aggressively optimizing compiler implementing common compiler optimizations, with emphasis on outstanding inlining and escape analysis algorithms. This paper compares Graal with some of the best-specialized competitors, and presents our results tested within an academic environment.
翻译:现代软件往往变得非常复杂,我们需要使用各种技术和不同的编程语言来开发。由于编程语言之间的互操作性可能造成高管理费用,导致性能损失,因此有必要研究目前一个多球虚拟机器如何与它打交道,该机器的编译者以高层次的物体导向语言撰写。OpenJDK的大都会项目展示了GraalVM, 这是一种开放源码、高性能的多球虚拟机器,大多在爪哇书写。本文展示了GraalVM的架构及其特点;此外,审视了它如何解决共同的互操作性和性问题。GraalVM在将各种编程语言(例如Java、JavaScript、C/C+++、Python、Ruby、R等)合并起来时,软件生态系统产生了成效。GraalVM的重要部分是在爪哇书写成的Graal汇编器,使开发者能够与C++语言的传统编程者相比,更快、更简洁、更有效率。Graalal可以作为正级的纸质、最优化的校内和升级分析的重点,在不断的编译中,在升级的校内进行。