一个由清华大学学生完成的C语言编译器实现 -- UCC。
以下为其作者对项目的简介:
“上了一学期的编译原理,但是对于如何去实现一个真正的编译器仍然觉得困惑;
学习了一些好的优化算法或者自己有些好的想法,想在gcc上实践一下,但发现gcc
实在太大了,有点无从下手。
如果你曾经有过上面这些感受,也许可以尝试一下ucc。
ucc是一款遵从ANSI C89标准的编译器,大约15,000行C代码。目前支持x86平台上的
Linux和Windows系统,能正确编译自身并成功运行。它有下面一些特点:
1. 代码结构清晰直观,有比较详细的中文文档讲述它的实现
2. 使用三地址码作为中间码,构建了由基本块组成的控制流图,适合很多优化算法
3. 编译速度快。词法分析,语法分析和目标代码生成器都是手写的(其中的代码
生成器本想用burg这样的工具自动生成,但这样可能会给代码的理解带来难度,
最后手写了一个简单的代码生成器)”
2021-12-10 13:41:08
371KB
编译原理
1