VMの仕様パート2 / VMプログラム / 非公式訳

pp.158-159

VMプログラム

VMプログラム(訳註: ここではスタックマシン)は、Jackなどの言語で書かれた高水準プログラムによって生成されます。次章で見るように、高水準プログラムJackは、いくつかの.jackクラスファイルを1個のフォルダーにまとめたものであるとおおむね表現できます。このフォルダーにJackコンパイラーを適用すると、各クラスファイル(FileName.jack)は、それぞれに対応するファイル(FileName.vm)に変換されます。FileName.vmはいくつかのVMコマンドで構成されます。

コンパイルすると、Jackファイル(FileName.jack)に含まれているコンストラクタ、函数(静的メソッド)、メソッド(名前はbarとする)は、FileName.barという名前のVM函数に変換されます(VM函数名は他と重複しません)。VM函数名のスコープはグローバルです。すなわち、プログラムフォルダーに含まれているどの.vmファイルのどのVM函数であろうと、他と重複しないフル函数FileName.functionNameを使えば、互いに認識できて互いにコールし合えます。