项目地址:
[链接登录后可见]
目标是实现一套完全实现 C99 标准(C99 标准可见 [链接登录后可见])的 C 语言编译器 + 虚拟机,编译器将 C 源码编译成自行设计的中间语言程序(理解为 Java 字节码),该中间语言程序可以运行在特定的虚拟机上(理解为 JVM)。
目前进度:
- 词法分析器:完成
- 语法分析器:实现为 GLR 解析器(标准 C99 文法不是 LALR 文法,对 LALR 语法分析器做简单改造即可支持语法冲突)
当前进行中:
- 解析语法分析器构造的 AST 树,将内容解析为更加语义化的结构中(但不检测语义错误)。该步骤仍然归在语法分析步骤。
TODO:
- 语义分析,语义错误检测
- 中间代码生成
- 虚拟机实现
- TBD
欢迎对编译原理感兴趣的同学关注,多提提 ISSUE