プログラミング言語自作〜1日目〜言語処理系の基礎

勉強ノートを、自分を追い詰めるためにも置いておきます...笑

1日目である第1章は、言語処理系の基本みたいな感じ。

ノート

言語処理系は2つに分かれる。

実際にプログラムを実行するソフトウェア。プログラムが仮想的な機械語で書かれている場合はインタプリタと呼ばずに仮想マシンと呼ぶこともある。

ある言語で書かれたプログラム(ソースプログム)を別の言語で書かれたプログラム(ターゲットプログラム)に変換するソフトウェア。

インタプリタでもコンパイラでも構文木を生成するところまでは同じ。そこからコンパイラならコード生成、インタプリタならプログラムの実行を行う。

きたないけど、ノート。

Photo Apr 04, 17 50 01.jpg

これから

実装するのはインタプリタなのだけど、内部ではコンパイラも実際は動いているので(高速化のため)コンパイラの設計も勉強する。

コード最適化には触れない。

まずは普通にこの本通りにプログラミング言語Stoneを作ろうと思う。

この本が終わったらそいつをクローンして新しい自分の言語にしていきたい。

開発言語はJavaなので、Java仮想マシンの上で動く言語。

Javaで実装することのメリットは、言語処理系をオブジェクト指向で書けるということ。