Write the Code. Change the World.

2月 01

图灵生机器,机器生汇编,汇编生 C,C 生万物
(来自知乎用户 Joy Neop)

本系列将展示一个完整编译器从无到有的实现过程.

目标是从一个C语言的不完全子集翻译到x86汇编语言, 将借助 Lex Yacc LLVM 等工具, 另外暂定实现垃圾回收及面向对象.

全部代码托管在 GitHub.     各阶段的源代码在 这里 查看.

主要参考 虎书(《现代编译原理–C语言实现》), 根据此书, 暂将实现分为11个阶段: 词法分析 语法分析 语义动作 语义分析 栈帧布局 翻译 规范化 指令选择 控制流分析 数据流分析 寄存器分配 代码流出.

已完成:

《一个完整编译器的实现—词法分析 | Anotherhome》

《一个完整编译器的实现—语法分析 | Anotherhome》

To be continued…

发表评论

电子邮件地址不会被公开。 必填项已用*标注

活捉 24 条
  1. 抖M

    博主,你这是太监了啊。。。。。我最近也在看虎书,玩玩这个也挺爽的,你可以考虑把编译器后端的工作引到llvm,只用实现到翻译成IR即可

  2. Pingback: free skype download

  3. Pingback: java update

  4. Pingback: download mozilla firefox

  5. Pingback: download google chrome

  6. Pingback: Vanessa Smith

  7. Pingback: 一个完整编译器的实现—词法分析 | Anotherhome

  8. Pingback: 一个完整编译器的实现—语法分析 | Anotherhome