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》

To be continued...

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。