KYT培训文稿(案例分析)ppt课件.ppt
《KYT培训文稿(案例分析)ppt课件.ppt》由会员分享,可在线阅读,更多相关《KYT培训文稿(案例分析)ppt课件.ppt(41页珍藏版)》请在文库网上搜索。
1、9.1 符号表的作用和地位 编译程序在执行的过程中,为了完成源 程序到目标代码的翻译,需要不断收集 、记录和使用源程序中一些语法符号的 类型、特征和属性等相关信息。 通常这些信息利用一些表格来保存,如 常数表、变量名表、数组名表、过程或 子程序名表以及标号表等。习惯上,将 这些表格统称为符号表。 1 源程序 词法分析程序 语法分析程序 语义分析程序 中间代码生成程序 代码优化程序 目标代码生成程序 目标程序 出 错 处 理 程 序 表 格 管 理 程 序 2 9.1 符号表的作用和地位 符号表的每一登记项包括名字标识符以及与 该名字相关联的一些信息。这些信息全面反 映了各个符号的属性及它们在编
2、译过程中的 特征。 在编译程序工作的全部过程中,都需要频繁 对符号表进行访问。有时填写信息,有时是 查找信息。 3 无论是查找,还是填写符号表,在编 译过程中都是一笔很大的开销。但仍 然要利用它,因为,它的功能体现如 下: 1.收集符号属性:在分析语言程序中标 识说明部分时,编译程序根据说明信息收 集有关标识符的属性,并在符号表中建立 符号的相应属性信息。 2.上下文语义的合法性检查的依据:同一 个符号,可能在不同的地方出现,有的是 定义;有的是引用。需要检查上下文之间 的一致性和合法性。 9.1 符号表的作用和地位 4 9.1 符号表的作用和地位 3. 作为目标代码生成阶段地址分配的依据:除
3、了在分析 过程中临时变量需要存贮单元外,每个符号变量在生成 目标代码时需要安排存贮位置。这需要解决两个问题: 存在哪个存贮区;在存贮区中存在哪个位置。这两个信 息都要存贮在符号表中。 符号表在编译过程中担任很重要的角色,然而, 又有很大开销。因此,合理组织符号表,正确利 用符号表,是提高编译程序工作效率的重要一环 。 5 9.2 符号表的主要属性及作用 语言符号可以分为关键字(保留字)符号、 操作符符号和标识符符号。它们之间的主要 属性有较大差别。需要建立不同的符号表。 以标识符为例,通常具有下列几种属性: 1.符号名: a.在程序设计语言中,一个标识符可以 是一个变量名、一个函数名或一个过程
4、 的名字; b.每个标识符通常由若干个字符组成的 字符串来表达。 6 a.因为标识符是变量、函数或过程的唯一标 识,因此标识符的重命名问题需要注意。 b.符号名与它在符号表中的位置一一对应, 而该位置通常用一个整数来表示,这个整数 就是该符号的内部代码,在分析过程中符号 串就变成了一个数值,识别与处理就方便了 。 7 9.2 符号表的主要属性及作用 2.符号的类型: a.除了过程标识符之外函数和变量标识 符都具有数据类型属性,其中,对于函 数的数据类型指的是函数值的数据类型 ; b.基本数据类型有整数、实数、字符、 逻辑及位组型等; c.符号的类型属性是在语言程序中定义 的; d.变量符号的类
5、型属性决定了该变量的 数据存贮格式和可以施加的运算操作; 8 a.不同类型的变量类型在运算过程中可能发 生变化; b.符号类型调整的原则是把其中一个存贮尺 寸较小或结构简单的变量转换成另一个符号 类型; c.在基本数据类型基础上可以扩充复合数据 类型。如数组类型、记录结构类型等; d.符号的类型是符号表存贮的符号的重要属 性。 9 9.2 符号表的主要属性及作用 3.符号的存贮类别: a.大多数语言对变量的存贮类别定义采用二种方式; 一种是用关键字指定。如:COMMON、Static等; 另一种是根据定义变量说明在程序中的位置来决定。 如私有变量、全局变量等; b.区别符号存贮类型的属性是编译
6、过程语义处理、检查和 存贮分配的重要依据。 10 4.符号的作用域及可视性: a.一个符号变量在程序中起作用的范围, 称为它的作用域; b.一般来说,定义该符号的位置及存贮类 关键字决定了该符号的作用域; c.一个变量的作用域就是该变量可以出现 的场合,也就是说在某个变量作用域范围 内该变量是可以引用的,这就是变量可视 性的作用域规则; 9.2 符号表的主要属性及作用 11 a.变量的可视性还体现在函数的形式参数及分程序结构 情形中; 函数的形式参数:通常函数的形式参数是作为函数 的内部变量处理的。函数体外定义的变量在函数体 内是看不见的。这时可以重名。 分程序结构:即结构化的程序设计。程序可
7、以分为 若干程序模块,程序模块中又可以嵌套其他程序模 块。为确定符号的作用域和可视性,符号表属性中 除了需要符号的存贮类别之外还需要表示该符号在 程序结构上被定义的层次。 b.无论是函数形式参数,还是分程序结构中的局部定义 都可以统一地用定义层次来区分。一般外部为0层,函 数内部为1层,依次向内嵌套定义的分程序为2、3等层 。 12 5.符号变量的存贮分配信息: a.根据符号变量的存贮类别定义及它们出现的位 置和次序来确定每一个变量应分配的存贮区及在 该区中的具体位置; b.在编译程序中,变量符号有两个存贮区域:静 态存贮区和动态存贮区; 静态存贮区:该存贮区单元经定义分配后成为静态单元 ,在
8、整个语言程序运行过程中是不可改变的。静态单元 分配的符号变量的生命周期是整个语言程序运行的周期 ;根据变量存贮类别及作用域规则,静态存贮区又可以 分为:公共静态区和局部静态区。 9.2 符号表的主要属性及作用 13 动态存贮区:根据变量的局部定义和分程序结构,编译程序设 置动态存贮区来适应这些局部变量的生存和消亡。局部动态变 量的生存周期是定义该变量的局部范围,即在该范围之外此变 量已经没有存在的必要。及时撤消时,这些单元可以收回,从 而提高运行的空间效率。 a.符号变量在存贮区中存放具体位置是根据扫描源程序 变量出现的次序以及它们之间的相对位置决定。 14 6.符号的其他属性: a.数组内情
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- KYT 培训 文稿 案例 分析 ppt 课件