コンパイラ

インタプリタを作った

また、遊びでインタプリタを作ってみた。文法はまるで英語の文章のような感じにしたかったんだけど、いまいち。なんとなくプログラムを公開してもいないのに、文法の解説してみる。階乗をを求めるコードは以下の通り。 #!/home/jklein/dev/sproject/talkc/ta…

COINS

[COINS] http://www.coins-project.org/これは凄いかも。まだ、詳しい仕様なんかは見てないけど、要は高級言語とアーキテクチャに依存しない中間言語の開発だ。解説とかを読んでてドキドキしてくる。詳しくはリンク先の『Coinsコンパイラの流れ』をじっと見…

ANSI C文法

・ftp://ftp..uu.net/usenet/net.sources/ansi.c.grammar.Z 1985年のANSI Cの文法チェッカ。単純に文法をチェックするために使うというよりも、Cの文法のBNFを見れるのがうれしい。しかも非常に見やすいし。・http://www.lysator.liu.se/c/ANSI-C-grammar-y.…

一応動くが、汚い。

一応出来たものの、設計もコードもすこぶる汚い。最適化もなし。それを弄りまくって超低機能数式コンパイラも作ってみた。それも汚い。でき上がるアセンブラもかなり冗長。例えばソースと、それから生成されるアセンブラは以下のようになる。文法は簡単だか…

構文解析(だいたい)完成

構文解析は出来た。実験的に解析木を作ってみたけど、問題無し。この構文に従って書いたコードは以下のような感じになる。これは構文解析のテスト用に作った巨大ソースの一部で、プログラム的な意味は全く無い。構文的に正しいだけのソースコード。 const in…

yaccに苦戦

Scriptive-C*1の文法をBNFで書くが、どうしてもyaccが『シフト・還元が衝突』やら『無意味な非終端記号が云々』などとうるさい。いろいろいじっているうち原因が判明 /* defvar=変数宣言 */ defvar_list: defvar_list defvar ; defvar: deftype varlist ';'…

俺言語

ちょっとコンパイラ周辺の勉強をしたので、自分への課題として『俺言語』の作製に挑戦していたりする。といってもまだプロトタイプ(と呼ぶのも恥ずかしい)程度の状態で『プログラム言語』とは呼べない。で、どうせ作るならなにか意味があった方が良いのか…