一部の言語は、「インタープリター ループを展開する」ことによって、インタープリターからコンパイルに移行すると聞きました。
次の ast ツリー用の疑似 C コード インタープリターがあるとします。
int interpret(node)
{
switch(node) {
case PLUS:
return interpret(child(0))+interpret(child(1));
case MINUS:
return interpret(child(0))-interpret(child(1));
}
}
このループを展開してコンパイル済みプログラムを作成するにはどうすればよいですか?
私が何について話しているのかわからないように、皆さんがこれに反対票を投じているのを見ますが、これはウィキペディアからの引用であり、私が説明していることを正確に述べています.
「Factor はもともと解釈されるだけでしたが、現在は完全にコンパイルされています (非最適化コンパイラは基本的にインタプリタ ループを展開します」