山东财经编译原理课件-第8章 静态语义分析和中间代码生成.pptxVIP

  • 4
  • 0
  • 约5.64千字
  • 约 71页
  • 2023-06-27 发布于浙江
  • 举报

山东财经编译原理课件-第8章 静态语义分析和中间代码生成.pptx

第8章 静态语义分析和中间代码生成;本章先介绍符号表的相关内容,然后讨论静态语义分析和中间代码生成的思想和方法。;8.1 符号表;一、符号表的作用:;符号名(最关键) 不允许重名;查询符号表项的关键字 符号类别 常量名,变量名、函数名、过程名等, 符号类型 整型、实型、字符型、布尔型、位型等。还有扩充的复合数据类型:数组、记录等 类型决定了该变量的数据存储格式、可以施加的运算操作 符号的存储类型和分配信息 符号存储在什么区?数据区or代码区;静态存储区or动态存储区;动态栈区or动态堆区; 分配信息:占几个字节大小,存储区的基地址和偏移地址?;符号的作用域及可见性 作用域:一个符号变量在程序中起作用的范围 作用域分:开作用域、闭作用域 当前作用域(符号的有效范围)和包含它的程序单元所构成的作用域称为开作用域。 其他作用域就是闭作用域。 可见性:变量可以出现的场合 符号的开作用域范围内,该符号是可见的 符号在多个开作用域被声明,离符号最近的声明是该引用的解释。 新的声明只能出现在新的作用域。 public、private等 作用域和可见性有区别:如:某函数内定义的static变量。区别就是静态变量只有第一次运行函数的时候被创建,并且在函数结束的时候不会消亡;而普通的动态变量在函数结束的时候就会在内存中退栈消亡;7;符号表的新建: 1)符号表的表长渐增变化的情况 符号表有两个指针,一个

文档评论(0)

1亿VIP精品文档

相关文档