编译原理第六章 符号表的组织与管理

1、符号表的作用

用于存放程序语言中出现的有关标识符的信息,两部分:标识符自身和与标识符相关的信息(类型,种属、作用域等)。在对程序语言进行编译的过程中,常常需要处理出现在程序语言中的标识符及相关信息。
按照处理对象的特点,组织方式可分为直接方式和间接方式

2、符号表的查找方法:顺序查找、二分查找、散列查找

建立符号表的数据结构:线性表、各种搜索树(二叉搜索树、AVL树,B树)以及散列表
线性表:易于实现,提供三种基础操作,表的大小是线性的,其查找和删除效率稳定,实用。
二分查找:为提高查找速度,可考虑将名字栏按名字大小顺序排序,以后查找时进行二分查找,但其插入的效率较低,每次填进一项会导致重新排序。
散列查找:上述两种方法的折中,预先设置空间M,构造一个散列函数Hash(Ki),函数值的取值在0 ~ M-1中,查找K时,Hash(K)即位置所在。为了避免冲突和冲突解决,hash函数的构造很重要,保证函数值均匀分布在0 ~ M-1中间。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 引论  1.1 翻译程序  1.2 为什么需要编译程序  1.3 编译程序的工作过程  1.4 编译程序的结构  1.5 编译程序的组织方式  1.6 编译程序的其他有关技术  1.7 翻译程序编写系统  1.8 并行编译程序  1.9 小结  习题一 第2章 形式语言概论  2.1 语言成分  2.2 产生式文法和语言  2.3 文法的分类  2.4 语言和语法  2.5 文法和语言的一些特性  2.6 分析方法简介  2.7 小结  习题二 第3章有穷自动机  3.1 概述  3.2 有穷自动机的形式定义  3.3 NDFSA到DFSA的转换  3.4 正规文法和有穷自动机  3.5 正规表达式与FSA  3.6 DFSA在计算机中的表示  3.7 小结  习题三 第4章词法分析  4.1 词法分析概述  4.2 单词符号  4.3 扫描程序的设计  4.4 标识符的处理  4.5 设计词法分析程序的直接方法  4.6 与设计扫描程序相关的几个问题  4.7 小结  习题四 第5章 自上而下语法分析  5.1 非确定的下推自动机  5.2 消除左递归方法  5.3 LL(k)文法  5.4 确定的LL(1)分析器的构造  5.5 LL(k)文法的几个结论  5.6 递归下降分析程序及其设计  5.7 带回溯的自上而下分析法  5.8 小结   习题五 第6章 自下而上分析和优先分析方法  6.1 短语和句柄  6.2 移进-归约方法  6.3 非确定的自下而上分析器  6.4 有关文法的一些关系  6.5 简单优先分析方法  6.6 算符优先分析方法  6.7 优先函数及其构造  6.8 两种优先分析方法的比较  6.9 小结   习题六 第7章 自下而上的LR(k)分析方法  7.1 LR(k)文法和LR(k)分析器  7.2 LR(0)分析表的构造  7.3 SLR分析表的构造  7.4 规范LR(1)分析表的构造  7.5 LALR分析表的构造  7.6 无二义性规则的使用  7.7 小结  习题七 第8章 语法制导翻译法  8.1 一般原理和树变换  8.2 简单SDTS和自上而下翻译器  8.3 简单后缀SDTS和自下而上翻译器  8.4 抽象语法树的构造  8.5 属性文法  8.6 中间代码形式  8.7 属性翻译文法的应用  8.8 小结  习题八 第9章 运行时的存储组织管理  9.1 数据区和属性字  9.2 基本数据类型的存储分配  9.3 数组的存储分配  9.4 记录结构的存储分配  9.5 参数传递方式及其实现  9.6 栈式存储分配方法  9.7 堆式存储分配方法  9.8 临时工作单元的存储分配  9.9 小结  习题九 第10章 符号表组织和查找  10.1 符号表的一般组织形式  10.2 符号表中的数据  10.3 符号表的构造与查找  10.4 分程序结构的符号表  10.5 小结  习题十 第11章 优化  11.1 基本块及其求法  11.2 优化举例  11.3 利用变量的定义点进行优化  11.4 循环优化  11.5 借助DAG进行优化  11.6 并行分支的优化  11.7 窥孔优化  11.8 小结  习题十一 第12章 代码生成  12.1 假想的计算机模型  12.2 从四元式生成代码  12.3 从三元式生成代码  12.4 从树形表示生成代码  12.5 从逆波兰表示生成代码  12.6 寄存器的分配  12.7 小结  习题十二 第13章 词法分析器生成工具LEX 第14章 语法分析器生成工具YACC 参考文献
编译原理 合工大17级 课件 李宏芒老师的课件 包含以下章节 第一章 引论  1.1 什么叫编译程序  1.2 编译过程概述  1.3 编译程序的结构  1.4 编译程序与程序设计环境  1.5 编译程序的生成 第二章 高级语言及其语法描述  2.1 程序语言的定义  2.2 高级语言的一般特性  2.3 程序语言的语法描述 第三章 词法分析  3.1 对于词法分析器的要求  3.2 词法分析器的设计  3.3 正规表达式与有限自动机  3.4 词法分析器的自动产生 第四章 语法分析——自上而下分析  4.1 语法分析器的功能  4.2 自上而下分析面临的问题  4.3 LL(1)分析法  4.4 递归下降分析程序构造  4.5 预测分析程序  4.6 LL(1)分析中的错误处理 第五章 语法分析——自下而上分析  5.1 自下而上分析基本问题  5.2 算符优先分析  5.3 LR分析法  5.4 语法分析器的自动产生工具YACC 第六章 属性文法和语法制导翻译  6.1 属性文法  6.2 基于属性文法的处理方法  6.3 S-属性文法的自下而上计算  6.4 L-属性文法和自顶向下翻译  6.5 自下而上计算继承属性 第七章 语义分析和中间代码产生  7.1 中间语言  7.2 说明语句  7.3 赋值语句的翻译  7.4 布尔表达式的翻译  7.5 控制语句的翻译  7.6 过程调用的处理  7.7 类型检查 第八章 符号表  8.1 符号表组织与作用  8.2 整理与查找  8.3 名字的作用范围  8.4 符号表的内容 第九章 运行时存储空间组织  9.1 目标程序运行时的活动  9.2 运行时存储器的划分  9.3 静态存储分配  9.4 简单的栈式存储分配  9.5 嵌套过程语言的栈式实现  9.6 堆式动态存储分配 第十章 优化  10.1 概述  10.2 局部优化  10.3 循环优化  *10.4 数据流分析 第十一章 目标代码生成  11.1 基本问题  11.2 目标机器模型  11.3 一个简单的代码生成器  11.4 寄存器分配  11.5 DAG的目标代码  11.6 窥孔优化

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值