设计编制并调试一个词法分析程序加深对词法分析原理的理解
pilerPrinciples§1.语法分析概述2例 G[S]: S→aAb 输入串 ab A→pilerPrinciples ②消除左递归:通过改写产生式我们可以消除直接左递归但不能完全消除左递归因为还存在着间接左递归的问题 例如文法G[P]: P→Qc∣c Q→Rb∣b R→Pa∣a 表面上并看不出它的左递归性但是仔细观察时不难发现
单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级 第八章 代码生成 序8.1 目标机器8.2 运行存储管理8.3 基本块和流图8.4 下次引用信息8.5 一个简单的代码生成器1序代码生成器中间代码符号表目标代码中间代码: 后缀式三地址代码语法树符号表中的项:名字类型
单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级第9章 符号表?9.1 符号表的作用和地位9.2 符号的主要属性及作用9.3 符号表的组织9.4 分程序结构的符号表的组织9.5 结合实验PL0编译器的符号表19.1 符号表的作用和地位 (1) 收集符号信息:在编译程序中符号表用来存放语言程序中出现的有关标识符的属性信息符号表中所登记的信息在编译的不同阶段都要用到
#
#
语法:任何语言程序都可以看成是一定字符集(称为字母表)上的字符串(有限序列)但是什么样的字符串才算是一个合适的程序呢所谓一个语言的语法是指这样的一组规则用它可以形成和产生一个合适的程序这些规则一部分称为词法规则另一部分能称为语法规则(或产生规则)第二章 高级语言及其语法描述算符第二章 高级语言及其语法描述
词法分析器输出的单词符号常常表示为二元式: (单词种别单词符号的属性值)单词种别通常用整数编码一个语言的单词符号如何分种分成几种怎样编码是一个技术问题它取决于处理上的方便标识符一般统归为一种常数则宜按类型(整实布尔等)分种关键字可视其全体为一种也可以一字一种采用一字一种的分法实际处理起来较为方便运算符可采用一符一种的分法但也可以把具有一定共性的运算符视为一种至于界符一般一符一种的分法第三章 词法
符号表的组织涉及数据结构方面知识(略)对符号表的访问常见操作有:(1)判定一给定的名字是否在表中(2)在表中填入一个新名字(3)访问与给定名字相关的信息 (4)为给定的名字填入或更新其某些信息(5)从表中删除一个或一组名字须指出在很多程序设计语言中对名字的作用域有相应的规定即同一名字的标识符在不同的作用域里标识了不同的对象且占用了不同的存储空间.因此在组织符号表时应能反映各个标识符的作用域.?3F
3形式语言与自动机理论的产生 符号和符号串13P:产生式(Product)集合或规则的集合α→β(或α::= β)被称为产生式(生成式规则重写规则)读作:α定义为β其中α∈(VT∪VN)且α中至少有VN中元素的一个出现β∈(VT∪VN)α称为产生式α→β的左部(Left Part)β称为产生式α→β的右部(Right Part)产生式定义各个语法成分的结构(组成规则) 递归定义——中缀表示标识符(
违法有害信息,请在下方选择原因提交举报