なぜHLシリーズはこんなに高速なのか?
(1)
- HL-16aやHL-22aはJITコンパイラですが、どちらもかなり小さな処理系です。しかしそれでも結構な速さで動きます。
| ページ名 | 名前 | 行数 | .exeの大きさ | 説明 | 速度のめやす1 | 速度のめやす2 |
| a21_txt02_6a | HL-16a | 1081行 | 24.5KB | 変数参照回数の表示 | 1.0倍 | 0.9倍 |
| a21_txt02_12a | HL-22a | | | 変数参照回数の表示 | | |
- これを実現するために、種もしかけもあるので、それを紹介しようと思います。
(2)
- まず最初に心がけていることは、「高度なことはやらない」です。高度なことをやれば、言語処理系が一気に大きくなってしまいます。それは私のやりたいことではありません。
- 私は高度なことをやらないで、それでもどこまでできるのか、を知りたいのです。既存コンパイラがやっているようなことを真似すれば、そりゃあすごいことができるでしょう(当然です)。しかしそれはただの劣化コピーにしかなりません(私の腕前がたいしたことないので)。だからそれは目指さないのです。
- 少ない労力でできて、それいて効果が結構ありそうなことは何か。それだけを寄せ集めたのがHL-16aやHL-22aなのです。
- 私が一番最初に「捨てた」のは構文木を構築することです。多くの言語処理系は、まずソースコードから構文木を生成して、