2019•Unpublished venueOpen access

Exploring Aspects of Polyglot High-Performance Virtual Machine GraalVM

Matija Šipek, Branko Mihaljević, Aleksander Radovan

Open full text 13 citations

Abstract

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.

Open-access reader

About this research paper

What this paper is about

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.

Why it matters

OpenAlex reports 13 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

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.

Key concepts: Computer science, Compiler, Programming language, Polyglot, Java, JavaScript, Just-in-time compilation, Python (programming language)

Related papers

Back to paper searchBrowse research topicsOriginal source
Exploring Aspects of Polyglot High-Performance Virtual Machine GraalVM — Research Paper | ScholarLens