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》

待續...

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。