高水準言語で記述されたアプリケーション仮想マシンには、どのようなものがありますか? C/C++ は (明らかな理由で) 最適な言語のように見えます。
私がグーグルで見つけたのは、Javaで書かれた少なくとも2つです(両方ともメタサーキュラー):JikesRVMとMaxineです。
他に見つけたものはありますか?
高水準言語で記述されたアプリケーション仮想マシンには、どのようなものがありますか? C/C++ は (明らかな理由で) 最適な言語のように見えます。
私がグーグルで見つけたのは、Javaで書かれた少なくとも2つです(両方ともメタサーキュラー):JikesRVMとMaxineです。
他に見つけたものはありますか?
それらの中で最も興味深いのは、クラインとマキシンです (デザインは実際にはクラインに基づいています)。Metacircular Lisp と Scheme の実装は、通常、いくつかの基本的なプリミティブの特別な形式の存在を前提としています。これらは、アセンブラ、C、または低レベル スタイルの言語の限定されたサブセットで実装する必要があります。Squeak と PyPy は、言語の限られたサブセットを使用します。Jikes は「魔法の」方法と低レベルのスタイルを使用します。
Klein と Maxine の考えは、すべてがハイレベルで、オブジェクト指向で、表現力豊かで、慣用的なスタイルで書かれているというものです。Klein の現在のバージョンでは、いくつかの制限によってスタイルが妨げられている小さな場所が 2 つだけあります。メッセージ送信の実装ではメッセージを送信できず、オブジェクトの複製の実装ではオブジェクトを複製できません。ただし、現在のコンパイラは、オブジェクトのクローン作成とメッセージ送信を実際にインライン化または完全に最適化することさえできるため、これら 2 つの場所を通常の OO Self スタイルで書き直すことができます。
それはすべて、単なるメタサーキュラー VM でした。高水準言語で記述された他の VM もあります。
さらにいくつかのVM実装は、TCL(ツールコマンド言語)およびlua(javaと呼ばれることもあります)であり、いくつかはアセンブラーで記述されています。他の変種は、製造元のコンピュータハードウェアシステムプログラミング言語で書かれています。