在编译器类中,我们为C语言的简化版本制作了一个解析器。所有解析器都根据输入创建符号表,如果语法不正确则退出并显示错误消息。现在我们需要获取一个用这种语言编写的输入文件,并将其转换为mips代码(实际上是用于linux的mips代码。)为什么需要一个符号表?可以在没有符号表的情况下完成吗?
答案 0 :(得分:2)
符号表将告知编译器是否有任何给定名称是(例如)类型名称,函数名称,变量名称等等。如何在不知道 的情况下将C转换为汇编代码(或任何其他实质性操作)?例如,考虑X * Y;
- 这是X乘以Y,还是声明Y是指向X的指针?您需要知道X是否为某个类型命名,以消除歧义 - 除了符号表可以告诉您什么?