新しいC言語かどうかを判定する方法

新しいC言語かどうかを判定するひとつの方法は、そのパーサを300行程度でかけるかどうかである。


Go言語はalgol68とそれほど変わらないという記事があったようなのだけど、まったくそのとおりだと思う。
結局はBNFベースの言語だ。
objective Cの別シンタックスで、 Erlang の並列処理が出来るだけ。。。

一本の糸からいきなり構造物を作るのは時代遅れだ。
正規表現でなんちゃってトランスレータを作っても、構造を把握できてないのでバグがどこに入るかわからない。


新しいC言語は、LISPHaskellの血を引き継いでおり、式ベースでなくてはいけない。
式がベースになっていることで、基本のパーサは簡単になる。
XMLの変換技術や、LISPの変換技術を応用できるようになる。
正規木文法で定義されており、マクロツリートランデューサ等で変換できるべきだ。


パーサはちょっと勉強すれば作れる必要がある。
実際私の作っている簡単なインタプリタのパーサは(エラー処理は未だ適当だけど)300行もあれば書ける。
そのためのアルゴリズムが下降型の演算子順位法だ。
これは手書きの再帰下降型のパーサに引けをとらないどころか場合によっては高速になりうる。

作り方については現在作成中である。何度もアップデートされた後、大学レベルではなく
高校の教科書レベルの簡単な作成方法ができあがる予定だ。

まず、そのような動的型の言語があって、それを高速化するために静的型付が作られるべきなのだ。

それが、pythonなのかもしれないけど、goとpythonはぜんぜん別物だよね。オフサイドルール使えないんだよね。。。