编译器,符号表和代码生成

符号表在编译器语义分析过程中承担了重要的作用。通常符号表用于指明标识符(符号)的一些基本属性,诸如它们的名字,类型,域,重定位信息(地址)等。这里讨论一个具体的符号表实现,与它在编译器中承担的任务。

对一个支持算术逻辑混合运算和短路的语言编译器的一点思考

三个多月没更新了。这个学期忙了不少东西,虽然结果如何还没见分晓。过往的五个学期不太理想的成绩直接让我在这个学期拼死拼活地争取保研名额。以上都是闲聊。

如标题所说,编译原理课程要求自己设计、编写出一个编译器。当然,具体支持的文法和功能并没有严格的规定。我自己写的编译器所支持的语言能够编译类似于C语言的算术和逻辑表达式。词法,句法分析还算顺利,也构建出了抽象语法树。然而,代码生成,尤其是针对支持逻辑运算短路、逻辑算术运算混合的表达式的语言生成代码,可能是一个细节非常繁杂的任务。