2016-12-10 12 views
-1

複数の言語を保持できる仮想マシンを設計する方法を学びたいと思います。たとえば、Scalaは古いJavaライブラリとネイティブに相互作用できます。言語がVM用に設計されていません

+0

Scalaの種類はJVM用に設計されており、その上で実行されます... –

+0

実際には、Scala for .NETの実動品質の実装がありましたが、現在はECMAScriptプラットフォーム用のScalaの実稼働準備が整いましたScalaのネイティブ実装が開発中です。 –

答えて

3

あなたはそれを間違った方法で見ています。 JVMは基本的にCPUのように動作し、bytecode instructionsのセットを実行します。有効なJVMバイトコードを生成するコンパイラを開発すると、JVMはそれらを実行できます。

これは、Javaコンパイラ(javac)の機能です.JVMで実行できるJavaソースからバイトコードを生成します。また、Scalaコンパイラ(scalac)が行うことです - JVM上で実行できるScalaソースからバイトコードを生成することです。これは、Groovyコンパイラ(groovyc)が行うことです - JVM上で実行できるGroovyソースからバイトコードを生成することです。

関連する問題