非専門的シンギュラリティー研究所

無限に動き続けるシステムを表す方法を AI なども使って考えていきます。

コンパイラ(1)

ふつうのコンパイラをつくろう 言語処理系をつくりながら学ぶコンパイルと実行環境の仕組み』という本を買ったのでコンパイラについて調べてみます。

X68000 のプログラムを作っていたら C++ では書けないようなものを作る必要がある場合もあるので、そんなときにも使えるようにするのが目標です。

このブログの記事で Python のパーサージェネレーター lark や C# のパーサーコンビネーター Sprache を使っていましたが、結局使いにくかったので C# のプログラムとして書けるようなパーサーコンビネーターを作ろうとしていました。

これはまだできていないのですが、これが C++ で書ければ X68000 でも使えるようになりそうです。

また、C++ で書いた C++ のパーサーのようなものがありました。これは自分で作っていたと思われるのですが、使ったことはないのでたぶんまだできていません。JavaScript で書いた C のインタープリターのようなものもありました。これを C++ に書き直したものがありましたが、まだちゃんと書き直されてはいませんでした。これらが使えないかも調べていきます。

PythonC# で実行時に動的にプログラムを実行する機能がありますが、これが実現できるかも調べてみます。