ブートストラッピングでコンパイラを作ろうat TECHブートストラッピングでコンパイラを作ろう - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト1:デフォルトの名無しさん 09/12/27 19:33:59 言語Lのコンパイラを言語Lで実装するにはブートストラッピングをしますが、 それをできるだけ原始的なレベルからやってみようと思います。 自分が実装するので、突っ込みお願いします。 コンパイラの勉強が主目的で、面白い言語を作ることは目的ではありません。 具体的には>>2 2:デフォルトの名無しさん 09/12/27 19:37:11 使用ツール: エディタ・アセンブラ・リンカのみ 手順: 1. アセンブラでLのものすごく小さなサブセット言語L1のコンパイラを作る 2. L1でL1のコンパイラを作る 3. L1で少しだけ多機能なL2言語のコンパイラを作る (これを繰り返す) (オプショナルな目標) 4. どっかの段階でlex/yaccに相当するものをLで作る 3:デフォルトの名無しさん 09/12/27 19:42:14 ×: 3. L1で少しだけ多機能なL2言語のコンパイラを作る (これを繰り返す) ○: 3. Lnで少しだけ多機能なLn+1言語のコンパイラを作る (これを繰り返す) 4:1 09/12/28 00:00:09 誰も見てないかもですが・・・ 一番最初のコンパイラの方針を考えました。 アセンブラで作るのでめちゃめちゃ簡単な言語(ほぼアセンブリ言語)にします。 - 標準入力からコード入力 → アセンブリ言語にコンパイル → 標準出力に出力 - リンカは手動で実行することにする - 制御構造はifとgotoのみ - 整数型のみ - ハッシュテーブルがまだ無いので、識別子はx0,x1,…:レジスタ変数,y0,y1,・・・自動変数.の形式のみ。 - 関数は実装する - 再帰下降型でパース 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch