Compiler
論文集
https://github.com/aalhour/awesome-compilers
授業の資料
授業科目: 2019後 システムプログラム 【火II】
https://github.com/gurugio/lowlevelprogramming-university
https://github.com/Developer-Y/cs-video-courses
歴史
https://en.wikipedia.org/wiki/History_of_compiler_construction
本
https://bookauthority.org/books/new-compiler-books
コンパイラとは
高級言語で書かれたプログラムを入力とし、機械が直接解釈し実行できるプログラムへ翻訳するシステムのこと
変換系の1つ
高級言語→機械語
コンパイラの概要
フロントエンド
プリプロセッサ
字句解析
構文解析
ASTを作る
意味解析
型解決など
翻訳
AST→IR (中間表現)
ミドルエンド
コード最適化
バックエンド
コード生成
流れ
高級言語のソースコード
をコンパイルして
アセンブリ言語
をアセンブルして
オブジェクトファイル
をリンクして
実行可能ファイル
を生成する
CPUはこれを機械語として扱って実行する
クロスコンパイラ
コンパイラが実行される計算機と、出力されたプログラムが動く環境が異なるもの
例えばUnix上でコンパイルして、組込みシステム上で実行など
自作
https://www.slideshare.net/mganeko/nodejsnodejs-123707037
関連
https://norasandler.com/2017/11/29/Write-a-Compiler.html
PythonでCコンパイラを書く
参考
『コンパイラの理論と作成技法』
『コンパイラの構成と最適化』
コンパイラのいじめかた / How to fight the compiler - Speaker Deck
https://github.com/DoctorWkt/acwj
https://github.com/aalhour/awesome-compilers