1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GraalVMにおけるJVM言語、Truffle言語、Polyglotの関係

Posted at

GraalVMは、異なるプログラミング言語を同じランタイム環境で動作させ、相互運用性を提供する強力なランタイムです。この投稿では、GraalVMの中でのJVM言語とTruffle言語の違い、そしてそれらを統合するPolyglot APIについて簡潔に説明します。

1. JVM言語とは?

JVM言語は、Java仮想マシン(JVM)上で動作するプログラミング言語の総称です。代表的なものには以下の言語があります:

  • Java
  • Kotlin
  • Scala
  • Groovy

これらの言語はすべてバイトコードにコンパイルされ、JVM上で実行されます。

2. Truffle言語とは?

Truffle言語は、GraalVMのTruffleフレームワークを使って実装された言語です。GraalVM環境では、Truffle言語もJVM言語と同様に、他の言語と統合して使用することができます。代表的なTruffle言語は以下の通りです:

  • Python
  • JavaScript
  • Ruby
    GraalVM上でのPython実装はGraalPyと呼ばれ、Truffleフレームワークを使って実装されています。

3. Polyglot APIとは?

Polyglot APIは、異なる言語同士の連携を可能にするGraalVMの中核機能です。これを利用することで、JVM言語とTruffle言語が同じアプリケーション内でシームレスにやり取りできるようになります。

Polyglot APIの例

以下は、JavaからPythonコードを呼び出す例です:

import org.graalvm.polyglot.*;

public class Main {
    public static void main(String[] args) {
        // GraalVMコンテキストの作成
        try (Context context = Context.create()) {
            // Pythonコードを実行
            context.eval("python", "print('Hello from Python')");
        }
    }
}

スクリーンショット 2024-10-22 151254.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?