Opportunities for a Truffle-based Golo Interpreter
Julien Ponge (CITI), Fr\'ed\'eric Le Mou\"el (CITI), Nicolas Stouls, (CITI), Yannick Loiseau (LIMOS)

TL;DR
This paper explores the potential of using the Truffle framework to develop an interpreter for Golo, a JVM language, aiming to compare its efficiency and engineering effort against existing invokedynamic-based implementations.
Contribution
It proposes experimenting with a Truffle-based interpreter for Golo to evaluate its benefits and trade-offs compared to current runtime implementations.
Findings
Potential for efficient interpreters using Truffle and Graal
Comparison of invokedynamic and Truffle approaches for JVM languages
Insights into engineering efforts for language runtime development
Abstract
Golo is a simple dynamically-typed language for the Java Virtual Machine. Initially implemented as a ahead-of-time compiler to JVM bytecode, it leverages invokedy-namic and JSR 292 method handles to implement a reasonably efficient runtime. Truffle is emerging as a framework for building interpreters for JVM languages with self-specializing AST nodes. Combined with the Graal compiler, Truffle offers a simple path towards writing efficient interpreters while keeping the engineering efforts balanced. The Golo project is interested in experimenting with a Truffle interpreter in the future, as it would provides interesting comparison elements between invokedynamic versus Truffle for building a language runtime.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Logic, programming, and type systems · Embedded Systems Design Techniques
