学術論文

このページでは、Oracle Labs とその学術協力者によって公開された、Graal コンパイラと Truffle 関連の様々なプレゼンテーションと出版物を説明しています。

Truffle

GraalVM は、Truffle フレームワーク を提供しており、Java でマネージド言語を実装できます。これにより、言語のパフォーマンスが向上し、他の Truffle 言語との統合やツールサポートが可能になります。これらはすべて、Java で抽象構文木 (AST) インタープリタを実装するだけで実現できます。Truffle は解釈中に AST の特殊化を適用するため、部分評価によって、言語専用のコンパイラを作成する必要なく、高度に最適化されたネイティブコードを作成できます。Java VM は、高性能なガベージコレクション、スレッド、並列処理サポートを提供します。

Oracle Labs と外部の研究グループは、JavaScript、Python、Ruby、R、Smalltalk など、さまざまなプログラミング言語を Truffle の上に実装しています。その中には、以前存在していたその言語の最良の実装を既に凌駕しているものもあります。

Christian Humer による Truffle を使用した動的メタコンパイルに関するプレゼンテーション を視聴し、このページにリストされている、ご興味のある Truffle に関する学術論文を確認することをお勧めします。また、ウェブサイト上の包括的な Truffle ドキュメント もご覧いただけます。

Graal コンパイラ

Graal コンパイラは、Java で記述された最適化された動的コンパイラです。高度に構成可能で拡張性が高いため、Java や JavaScript などのさまざまなマネージド言語で、多くのベンチマークにおいて優れたピークパフォーマンスを実現します。これにより、コンパイラの研究は新たなレベルに達しました。研究者は、多くの言語で新しいコンパイラ最適化をすぐに評価できます。Java HotSpot VM などの最新の VM がどのようにコードを最適化するかを知りたい言語実装者の方は、Doug Simon によるプレゼンテーション GraalVM コンパイラを見てみる でその答えを見つけることができます。

このプレゼンテーションでは、以下のトピックを取り上げています。

  • ソースから GraalVM ディストリビューションを構築する方法
  • コンパイラが開発を簡素化するために Java 言語の機能(アノテーション、単体テスト、個々のコンパイラ最適化のベンチマーク)を使用する方法
  • GraalVM プロジェクトで確認すべき主なクラス
  • コンパイルラッパーなど

以下にご興味のあるコンパイラに関する学術論文も掲載しています。または、ウェブサイト上の Graal コンパイラ ドキュメント もご覧ください。

学術論文

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013

  • Thomas Würthinger、Christian Wimmer、Andreas Wöß、Lukas Stadler、Gilles Duboscq、Christian Humer、Gregor Richards、Doug Simon、Mario Wolczko One VM to Rule Them All Onward! 論文集掲載。Truffleアプローチのビジョンと、インタプリタや動的コンパイラを含む完全なシステムスタックについて説明。

  • Matthias Grimmer、Manuel Rigger、Lukas Stadler、Roland Schatz、Hanspeter Moessenboeck Javaのための効率的なネイティブ関数インタフェース Javaプラットフォーム上でのプログラミングの原則と実践に関する国際会議:仮想マシン、言語、ツール(PPPJ)論文集掲載。

  • Matthias Grimmer Truffle/C VMのためのランタイム環境 リンツヨハネスケプラー大学修士論文、2013年11月。

2012

  • Thomas Würthinger、Andreas Wöß、Lukas Stadler、Gilles Duboscq、Doug Simon、Christian Wimmer 自己最適化ASTインタプリタ 動的言語シンポジウム(DLS)論文集掲載。自己最適化および自己特殊化インタプリタの設計と、JavaScriptへの応用について説明。

GraalVMコンパイラに関する論文

2023

2022

2021

2020

2019

2018

2016

2015

2014

2013

2012

お問い合わせ