banner
DIYgod

Hi, DIYgod

写代码是热爱,写到世界充满爱!
github
twitter
bilibili
telegram
email
steam
playstation
nintendo switch

完全なコンパイラの実装

チューリングは機械を生み出し、機械はアセンブリを生み出し、アセンブリは C を生み出し、C は万物を生み出す。
(知乎ユーザー Joy Neop から)

このシリーズでは、完全なコンパイラの実装プロセスを紹介します。

目標は、C 言語の不完全なサブセットを x86 アセンブリ言語に翻訳することであり、Lex Yacc LLVM などのツールを利用します。また、ガベージコレクションとオブジェクト指向の実装も予定しています。

すべてのコードはGitHubにホストされています。各段階のソースコードはこちらで確認できます。

主な参考文献は「虎の本(『現代的なコンパイラ原理 - C 言語の実装』)」であり、この本に基づいて、実装を 11 つの段階に分けています:字句解析、構文解析、意味アクション、意味解析、スタックフレームのレイアウト、翻訳、正規化、命令選択、制御フローアナリシス、データフローアナリシス、レジスタ割り当て、コード生成。

完了したもの:

「完全なコンパイラの実装 - 字句解析 | Anotherhome」

「完全なコンパイラの実装 - 構文解析 | Anotherhome」

続く...

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。