编译程序的另外两个重要的工作是表格管理和出错处理.他们与上述六个阶段都有联系。编译过程中源程序的各种信息被保留在种种不同的表格里,编译各阶段的工作都涉及到构造、查找或更新有关的表格,因此需要有表格管理的工作;如果编译过程中发现源程序有错误,编译程序应报告错误的性质和错误发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动校正错误,这些工作称之为出错处理。 最重要的一种表格是符号表。符号表中记录源程序中使用的名字和收集到的每个名字的各种属性信息,诸如类型、作用域、分配存储信息。在第二章你会看到一种符号表,在第九章你会对符号表的组织和管理了解的更深入。 出错处理程序的任务包括检查错误、报告出错信息、排错、恢复编译工作。我们会在第二章中学习一些出错处理程序的设计和实现思路。 |