Cコンパイラ自作 おすすめ書籍


学習目的でCコンパイラを作成したいと思っています。
C・C++で困ることはない(だろう)、アセンブラは書けるが追加の学習が必要かもしれない、コンパイラ未経験で作成手順もわかっていない(Webで調べる前段階)、というスタート地点から作成を開始して完成させるまでにお勧めの書籍を教えて下さい。

・なるべく全ての工程を作りながら学びたいという主旨なので、LLVMは避けたい(後にしたい)と思っています。
・CPUはIntel x86_64で考えています。
・書籍は英語でも構いませんが、絶版でない物だと助かります。

よろしくお願いします。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2016/02/08 00:20:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:pyopyopyo No.1

回答回数377ベストアンサー獲得回数98

ポイント300pt

私は学生のころ「Cコンパイラ設計―yacc/lexの応用」を古本屋で購入して,コンパイラを自作しました
amazon:4766502663

古い本ですが,C言語が作られたのも1970年代ですので,内容は問題無いと思います.絶版ですが,今でも古本なら買えます

また,この本はネット上でも読めるようです(著作権が心配ですが)
http://www.pwv.co.jp/~take/TakeWiki/index.php?C%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9%E8%A8%AD%E8%A8%88%28yacc%E3%83%BBlex%E3%81%AE%E5%BF%9C%E7%94%A8%29

2番目におすすめ本は「コンパイラ構成法」です.
こちらはちゃんと読んだことが無いのですが,さっと目を通した感じでは,良くまとまっているようでした.
amazon:4320029224

個人的には以下の順番で勉強すると良いと思います

  • 予備知識として「構文解析」を勉強しておく
    • オートマトン,LLパーサー,LRパーサーぐらいは理解しておいた方が良いです
    • https://ja.wikipedia.org/wiki/LL%E6%B3%95
    • https://ja.wikipedia.org/wiki/LR%E6%B3%95
    • 理想的にはこの段階で,電卓的な物を作成してみると,後が楽になると思います.たとえば "1+2*3"という文字列を, 1 + (2*3) という式として評価して,7と計算するプログラムです.
  • 上記の本でコンパイラの作り方を勉強
  • 実際にコンパイラを作る
id:kyo_bracer

詳しく勧めて頂きありがとうございます。
予備知識の部分は完了しましたので、Cコンパイラ設計を購入してみます。

2016/02/08 02:22:55

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません