言語の要素は結局どこまで分解・単純化できるのか?
いわゆる低レベルで必要となる要素
変数/レジスタなどの記憶場所
ジャンプ
分岐
関数の呼び出し・復帰
基本的な計算(ALUの利用)
CPUを作る場合は、物理的な制約が現れる。
レジスタ
メモリ
ALU
バス
命令のデコード
キャッシュ
パイプライン
VMでは必ずしもハードウェアに密着する必要はない。そのためかなり緩和される。
高級言語寄りの情報を持たせて、JITコンパイルすることが考えられる。
多くの場合、スタックマシンとして設計するようになっている。