chibiccを読む~Cコンパイラコードリーディング~ ステップ0
はじめに
twitter.comCコンパイラを作るのを挫折している人は単にソースコードを読んでない気がする。本がお題でコードが答えというクイズみたいな構成ではなく、コードが本文でその解説が本です。どちらかしか読まないならむしろコードだけ読んだほうがいいです。 https://t.co/teirp6yziy
— Rui Ueyama (@rui314) 2022年5月5日
twitter.comコードの書き方を学ぶにはコードを読むのがいい、という話。
— Rui Ueyama (@rui314) 2022年5月5日
twitter.com無論それだけがありえる問題というわけではなくて、単にCプログラミングに慣れてないというのもよくあるのだろうけど(もしそうならなおさらコードを最初から見たほうがいいのではという)。
— Rui Ueyama (@rui314) 2022年5月5日
twitter.comhttps://t.co/xaiIIadtjg を読んでも実装がわからない、となっている人は素直にコードを一から順番に読みましょう。文章だけしか読まない理由は僕にはわからない。具体的な実装から学べることはとても多いし、普通にコードを読んで学んでどんどん先に進んでほしい。 https://t.co/teirp6yziy
— Rui Ueyama (@rui314) 2022年8月13日
ということで、Cコンパイラchibiccを読んでいく。
低レイヤを知りたい人のためのCコンパイラ作成入門ではリファレンスブランチを参照しているので、リファレンスブランチのコミット履歴を順番に読んでいきます。
記事一覧
ステップ1
ステップ2
ステップ3
ステップ4
ステップ5
ステップ6
ステップ7
ステップ8
ステップ9、10、11
ステップ12
ステップ13
ステップ14
ステップ15
ステップ16
ステップ17、18、19
ステップ20、21、22
ステップ23
ステップ24
ステップ25
ステップ26
ステップ27
ステップ28
日本語がおかしい文章、間違った内容を説明している文章、説明がわかりにくい文章、などありましたら、https://twitter.com/jupiteroaknp までコメント下さい。
読んでみた所感
①それなりにC言語が読める、②それなりにx86アーキテクチャのアセンブリ言語が読める、③それなりにコンパイラ・リンカ・ローダに関する基本的な知識がある、人であれば、問題なく読み進めていくことができると思われる。
(それなり = 初級者と中級者の間くらい)
twitter.com10年前だとCコンパイラをゼロから作るのは偉業みたいな感じだったけど、いまなら頑張ればできるみたいになってる。いい教材を作ると少し世界が実際に変わる感じがしてよい。
— Rui Ueyama (@rui314) 2022年12月3日
とても良い教材をつくってくれたことに感謝。