下载此文档

第五章符号表的组织和管理说课讲解.ppt


文档分类:高等教育 | 页数:约25页 举报非法文档有奖
1/25
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/25 下载此文档
文档列表 文档介绍
第五章:,它象源程序的一个数据字典,存储了源程序中每个名字及其属性,使用在编译的各个阶段。(1)登记符号属性值在源程序的各个分析阶段,编译程序根据标识符的声明信息收集它属性的有关值,并把它们存放在符合表中。每种语言规则定义了不同的符号属性;即使是同一个语言,不同的编译程序也可能会定义并且收集不同的属性信息。现代编程语言中一般包括常数声明、变量声明、类型声明和过程/函数声明等四类声明。对于每类声明,编译程序要收集、存储和应用的属性完全不同。例C语言的变量声明shortinta;floatb=;把标识符a声明为短整数型,把b声明为浮点类型,而且初始化为0。那么,编译程序对每个变量要记录它的类型,以便执行类型检查和分配存储,比如短整型变量i占2个字节;要记录它在存储器中的位置(相对位移或绝对地址),以便目标程序运行时访问;若像b有初始值,则还需要记录这个初始值。(2)查找符号的属性符号表存放了源程序中的各种类型的信息,比如数值、变量类型、参数传递的地址等,在分析和翻译源程序的过程中会被不断地查询。例如,对于上述的变量声明,如果源程序有代码 a+b时,就需要查找、计算表达式中运算数的类型和值,以便计算出表达式。又如,在源程序中如果出现了函数调用factory(6),编译程序就需要查找到factory的声明,找到实参6的地址并传给形参n,执行函数factory的体,并返回值等。(3)作为目标代码生成阶段地址分配的依据标识符由它定义的存储类型或它在程序中的位置来确定。首先是要确定变量存储的区域。例如,在Java语言中,整数的类型(以及所占用的字节)有byte(1个字节)、short(2个字节)、int(4个字节)以及long(8个字节),而float类型占4个字节,double类型占8个字节。又如,对寄存器变量,编译将尽可能地把它们保留在机器的寄存器当中,以提高运行速度;而对在一个文件中定义的外部变量,它们要在不同的源程序文件之间访问,需要编译程序把它们放在所有源程序文件都可以方便寻找到的存储器的位置。其次,要根据标识符出现的顺序,决定标识符在某个存储区域中的具体位置,而有关区域的标志及其相对位置都是作为该标识符的语义信息存放在它的符号表中的。,由于它们的信息不同,也就导致了符号表的组织有较大的差别。例如,数量类型的变量名字和过程名字:对于一个变量名要记录其类型(如整型、实型、布尔型等)、占用的存储字节以及相对与某个基准位置的相对位置;对一个过程名要记录的属性包括参数的个数及其类型,该过程是否有返回值,过程中的变量声明,甚至过程声明(如果像Pascal语言允许嵌套过程声明)等信息。不同的程序语言规定了符号的不同性质以及语法、语义和规则,几种基本的符号属性。(1)符号名语言中的符号名通常用标识符来表示。根据语言的定义,程序中出现的重名标识符定义将按照该标识符在程序中的作用域和可视规则进行相应的处理。而在程序的运行过程中,符号表中的符号名始终是唯一的标志。在一些允许操作重载、类继承的语言中,函数名、操作名允许重名,对于重载操作的标识符,它们可以通过参数的个数与类型以及返回值的类型来区别;而对于操作的继承,编译器可以构造继承图,同时保存类结构,这样就可以为每个操作和属性找到唯一的定义。例如,对应不同的参数类型,可以定义几个求和重载函数:intsum(inta,intb)doublesum(doublea,doubleb)floatsum(floata,floatb,floatc)当某个函数中调用到重载函数时,编译器根据实参的类型和个数去调用相应的函数。(2)符号种属由于语言中符号所拥有的属性可能不同,其组织就可以采用不同的数据结构,可以用符号的种属来区别每个符号的基本划分。根据不同的语言,符号的种属可以包括:简单变量、结构型变量、数组、过程、类型、类等。可以依据符号种属的划分来组织符号表,一种方式是为每个种属的标识符建立一张表,这样,可以对符号表类似地安排组织结构、进行同样的操作;另外一种方式把所有种属的标识符统一安排在一张表中,根据符号的种属进行条件判断,对不同种属的特殊型执行不同的存储安排和操作。(3)符号类型现代程序语言中的一个重要构造就是数据类型(类型),它是变量标识符的重要属性,函数的数据类型指的是该函数返回值的数据类型。现代语言通常都有如下的基本类型:整型、实型、字符型、布尔型、逻辑型等;符号的类型属性从源程序中该符号的定义中得到变量符号的数据类型属性不但决定了该变量的数据在存储器中的存储格式,也规定了可以对该变量施加的操作运算。

第五章符号表的组织和管理说课讲解 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数25
  • 收藏数0 收藏
  • 顶次数0
  • 上传人坚持
  • 文件大小360 KB
  • 时间2019-12-14