参考程度に、コード生成

岩波講座 ソフトウェア科学〈〔環境〕5〉プログラミング言語処理系」、第8章「コード生成」へと進む。

ここまで来るとさすがにターゲットとなる CPU の命令セットを意識しないわけにはいかないので、話はどんどんハードウェア寄りに。

アセンブラでのプログラミング経験がなく*1、精通している CPU も皆無な身の上としては、ついていくのに少々無理がある感じ。興味があるのはあくまで高水準言語での(自作言語のための)仮想マシンの作成だし。

それに、中間コードを後置コードにして、仮想マシンをスタックマシンにしてしまえば、そもそも中間結果を保持するためのレジスタ自体が不要なわけで、この章で中心的に述べられている「レジスタ割当て」もやる必要がない。

この章と次の第9章「コード最適化」は、どちらも実際のターゲット CPU 向けの目的コードの生成についての話なので、(単にインタプリタが作りたいだけの自分は)参考程度に読んでおくだけでいいだろう。高水準言語のユーザーに徹したまま、最初から最後まで、仮想化された世界の中で物事を完結させたい。
  ↑
うう〜ん。こう書くとほんと軟弱者*2って感じだなあ。「本物」じゃない。でも、実際本物じゃないんだよな。素人なんです。

*1:軟弱ですまん。

*2:セイラさんに(以下略)