Exploring Aspects of Polyglot High-Performance Virtual Machine GraalVM

12/15/2021
by   M. Sipek, et al.
0

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.

READ FULL TEXT
research
10/30/2020

Transparent Compiler and Runtime Specializations for Accelerating Managed Languages on FPGAs

In recent years, heterogeneous computing has emerged as the vital way to...
research
12/15/2021

Next-generation Web Applications with WebAssembly and TruffleWasm

In modern software development, the JavaScript ecosystem of various fram...
research
09/06/2018

Future Directions for Optimizing Compilers

As software becomes larger, programming languages become higher-level, a...
research
01/23/2022

Two-level Just-in-Time Compilation with One Interpreter and One Engine

Modern, powerful virtual machines such as those running Java or JavaScri...
research
02/22/2020

Modeling the Invariance of Virtual Pointers in LLVM

Devirtualization is a compiler optimization that replaces indirect (virt...
research
09/17/2022

langcc: A Next-Generation Compiler Compiler

Traditionally, parsing has been a laborious and error-prone component of...
research
03/28/2022

The State of Fortran

A community of developers has formed to modernize the Fortran ecosystem....

Please sign up or login with your details

Forgot password? Click here to reset