编译原理总复习2016详解.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理 总复习 安庆师范学院计算机与信息学院 教学内容 1 题型及分值 2 教材各章知识点概览 3 计算题题型 1 题型及分值 一、判断题 (1′×5=5′) 二、填空题 (1′×10=10′) 三、选择题 (2′×5=10′) 四、简答题 (本题共35分):其中包括两个名词解释。 五、计算题 (10′+15′+15′=40′) 返回 2 教材各章知识点概览 编译程序概论 1 文法和语言 2 词法分析与有限自动机 3 自上而下语法分析方法 4 自下而上语法分析方法 5 语法制导翻译和语义分析 6 符号表 7 代码优化 8 1、 编译程序概论 (1)基本概念 翻译程序,编译程序 (2)编译过程的五个阶段,各阶段的任务及其依循的规则、描述工具分别是什么?除了这个5个阶段之外,还应该有哪两个重要内容? 五个逻辑阶段:词法分析、语法分析、语义分析和中间代码产生、代码优化和目标代码生成。除了这五个阶段之外,编译程序的每个阶段都涉及到表格管理和错误处理这两个重要内容。 1、 编译程序概论 (3)编译错误的种类 从编译程序的角度来看,源程序中的错误主要分为:语法错误 和 语义错误两类错误。 (4)高级程序设计语言翻译的两种方式以及它们的区别 高级程序设计语言的翻译主要有两种方式:编译方式 和 解释方式。 区别:是否生成目标代码。 返回 2、 文法和语言 (1)基本概念 文法、推导、最左推导、最右推导、句型、句子、语言、文法的二义性 (2)对文法G,能够给出给定句型或句子的最左推导及最右推导序列,并画出其对应的语法分析树。 (3)能够计算某文法的语言。 (4)理解文法的二义性,能够说明一个文法是二义的。 2、 文法和语言 (5)形式语言分类(chomsky,1956) 0型 普通(短语)文法 1型 上下文有关文法 2型 上下文无关文法 3型 线性(正规、正则)文法 3型 2型 1型 0型 返回 3、 词法分析与有限自动机 (1)基本概念 状态等价、DFA的化简 (2)词法分析器的任务及其输出形式 任务:自左至右逐个字符地对源程序进行扫描,按语言的构词规则识别出一个个单词,把作为字符串的源程序改造为单词符号串的中间程序。 输出形式:二元式 ( 单词种别, 单词符号的属性值) (3)单词符号的种类 关键字、标识符、常数、运算符、界符 3、 词法分析与有限自动机 (4)正规文法、正规式、有限自动机之间的相互等价性定理 (5)正规式→ NFA → DFA →最小化DFA 返回 4、 自上而下语法分析方法 (1)语法分析的方法 根据语法分析树建立方向的不同,将语法分析分成两类:自上而下语法分析方法和自下而上语法分析方法。 (2)自上而下分析的基本思想 穷举试探法 (3)自上而下分析面临的两个最主要的问题 左递归、回溯 (4)自上而下分析的基本方法 LL(1)分析法、递归下降分析器 4、 自上而下语法分析方法 (5)左递归(直接、间接)和回溯的消除 直接左递归的消除 间接左递归的消除 排序 代入及消除左递归 化简 4、 自上而下语法分析方法 (5)左递归(直接、间接)和回溯的消除 回溯的消除:提左公因子 4、 自上而下语法分析方法 (6)LL(1)的含义 LL(1)中的第一个L表示从左至右扫描输入串,第二个L表示最左推导,1表示分析时每一步只需向前查看一个符号。 (7)LL(1)分析器的组成部分 输入缓冲区、分析栈、分析表、总控程序 (8)LL(1)分析的四种动作 成功、匹配、推导、报错 4、 自上而下语法分析方法 (9)LL(1)文法的判定条件 ①文法不含左递归。 ②文法中每一个非终结符A的各个产生式的候选首符集两两不相交。即, 若 则 ③对文法中的每个非终结符A,若它存在某个候选首符集包含ε,则  如果一个文法G满足以上条件,则称该文法G为LL(1)文法。 4、 自上而下语法分析方法 (10)LL(1)分析方法 假设要用非终结符A进行匹配,面临的输入符号为a,关于A的所有产生式为 则LL(1)分析算法如下:   ①若 ,则指派 去执行匹配任务。   ②若a不属于任何一个候选首符集,则 若ε属于某个 且 ,则让A与ε自动匹配; 否则,a的出现是一种语法错误。  根据LL(1)文法的条件,每一步这样的工作都是确信无

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档