【课前思考】 ◇ 回顾第一章介绍的编译过程,理解符号表在编译过程中的位置和作用。 ◇ PL/0编译程序的符号表是怎样组织的?它都登录了名字的哪些属性信息? ◇ 程序设计语言中"变量的作用域和可见性"是什么含义? ◇ 高级语言语句的结构和低级语言结构的不同。 【学习目标】 符号表作为编译系统的重要设施,贯穿于文法分析、检查和语义处理的编译全过程。本章目的使学生深刻全面地了解符号表的地位和作用;掌握符号表的组织和管理方法;以及编译过程中符号表的操作活动过程。 【学习指南】 在编译程序中符号表用来存放源程序中出现的有关名字的属性信息,这些信息集中反映了名字的语义特征属性。符号表在编译全过程的地位和作用非常重要,是进行上下文合法性检查和语义处理及代码生成的依据。符号表总体结构的设计和实现是与源语言的复杂性(包括词法结构、语法结构的复杂性)有关,还与对于编译系统在时间效率和空间效率方面的要求有关。 【难重点】 ◇ 符号表总体组织的选择原则。 ◇ 变量的类型和存储类别等属性的重要性。 ◇ 采用单表结构时,如何解决分程序构造中同名名字声明的可视性规则。采用分表结构适合哪种语言的编译系统。 【知识结构】 ![]() |