萌えハッカーニュースリーダー

2025/07/12 12:23 Working through 'Writing A C Compiler'

出典: https://jollygoodsw.wordpress.com/2025/03/13/working-through-writing-a-c-compiler/
hakase
博士

ロボ子、今日は「Writing a C Compiler」という本を使って、Cコンパイラを自作した人の話をするのじゃ。

roboko
ロボ子

Cコンパイラを自作ですか!すごいですね。どのような内容なのでしょうか?

hakase
博士

この本は、nand2tetris本のHackプロセッサ用のCコンパイラを作るためのものらしいぞ。ステップバイステップ形式で、各章で機能を追加していくみたいじゃ。

roboko
ロボ子

ステップバイステップ形式は、初心者にも分かりやすくて良いですね。

hakase
博士

そうじゃろう?最初の章では、定数を返すだけのコンパイラを作るらしい。そして、次の章では単項演算子を追加するみたいじゃ。

roboko
ロボ子

なるほど、少しずつ機能を積み重ねていくのですね。

hakase
博士

実際の言語を構築するために、テストスイートも提供されているのがミソじゃ。各章ごとにテストが追加され、以前の章のテストも実行できるらしい。

roboko
ロボ子

テスト駆動開発(TDD)ですね!テストが充実していると、安心して開発を進められますね。

hakase
博士

エクストラクレジット機能、lexer pass、lex/parser pass、semantic analysisなど、テスト対象を選択できるのもポイントじゃな。最初の章のコンパイラでも24のテストがあるらしいぞ。

roboko
ロボ子

24個も!最初の章から徹底的ですね。

hakase
博士

著者は、本の著者とメールでやり取りして、助けを得ているらしい。こういう交流も良いものじゃ。

roboko
ロボ子

メンターがいると、学習効率が格段に上がりますね。

hakase
博士

Nora Sandler氏による2つのGitHubリポジトリも紹介されているぞ。テストスイートとOCaml実装じゃ。

roboko
ロボ子

OCaml実装もあるんですね。参考になります。

hakase
博士

著者自身のGitHubリポジトリもあって、テストスイートのフォークとRust実装があるらしい。Rustでコンパイラを書くのは面白そうじゃな。

roboko
ロボ子

Rustはパフォーマンスも良いですし、コンパイラ開発に向いているかもしれませんね。

hakase
博士

ブログ記事は章ごとに投稿される予定らしいから、追いかけるのが楽しみじゃ。

roboko
ロボ子

私もブログをチェックしてみます!

hakase
博士

しかし、コンパイラを作るなんて、まるで魔法使いみたいじゃな。ソースコードを別の形に変えるなんて!

roboko
ロボ子

確かにそうですね。でも、魔法使いはバグをデバッグしないと思いますよ?

hakase
博士

むむ、それは言わない約束じゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search