语法:任何语言程序都可以看成是一定字符集(称为字母表)上的字符串(有限序列)但是什么样的字符串才算是一个合适的程序呢所谓一个语言的语法是指这样的一组规则用它可以形成和产生一个合适的程序这些规则一部分称为词法规则另一部分能称为语法规则(或产生规则)第二章 高级语言及其语法描述算符第二章 高级语言及其语法描述
词法分析器输出的单词符号常常表示为二元式: (单词种别单词符号的属性值)单词种别通常用整数编码一个语言的单词符号如何分种分成几种怎样编码是一个技术问题它取决于处理上的方便标识符一般统归为一种常数则宜按类型(整实布尔等)分种关键字可视其全体为一种也可以一字一种采用一字一种的分法实际处理起来较为方便运算符可采用一符一种的分法但也可以把具有一定共性的运算符视为一种至于界符一般一符一种的分法第三章 词法
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
这个翻译的过程是在语法分析过程中同步完成的所以我们称为语法制导翻译在自顶向下或是自底向上过程中同步完成翻译分析一条语句翻译一条语句本章介绍比较流行的:基于属性文法的语法制导翻译方法1. 属性 print () := 综合属性:自下而上传递信息继承属性:自上而下传递信息 语 义 规 则print() := := := := := :=() := ==real语义规则
编译原理引论课程性质2162023216202321620231011 1000 0010 1011 0001 0101 (B82B15)1000 1110 1101 1000 (8ED8)1010 0001 0000 0000 0000 0000 (A10000)1000 1011 0001 1110 0000 0010 0000 0000 (8B1E0200)1011 1001 0000 00
违法有害信息,请在下方选择原因提交举报