川大编译原理复习要点(共5页).doc





《川大编译原理复习要点(共5页).doc》由会员分享,可在线阅读,更多相关《川大编译原理复习要点(共5页).doc(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上1. 编译的各个阶段扫描程序(scanner)在这个阶段编译器实际阅读源程序(通常以字符流的形式表示)。扫描程序执行词法分析(Lexical analysis):它将字符序列收集到称作记号(t o k e n)的有意义单元中,记号同自然语言,如英语中的字词相似。语法分析程序(parser)语法分析程序从扫描程序中获取记号形式的源代码,并完成定义程序结构的语法分析(syntax analysis),这与自然语言中句子的语法分析类似。语法分析定义了程序的结构元素及其关系。通常将语法分析的结果表示为分析树( parse tree)或语法树(syntax tree)。语义分析
2、程序(semantic analyzer)分析程序的静态语义,包括包括声明和类型检查。源代码优化程序(source code optimizer),代码生成器(code generator),目标代码优化程序(target code optimizer)。2. 编译器的前端(front end),后端(back end),遍(passes)扫描程序、分析程序和语义分析程序是前端,代码生成器是后端。编译器发现,在生成代码之前多次处理整个源程序很方便。这些重复就是遍(p a s s)3. 编译器,汇编器和解释器之间的区别 解释程序是如同编译器的一种语言翻译程序。它与编译器的不同之处在于:它立即执行
3、源程序而不是生成在翻译完成之后才执行的目标代码。汇编程序是用于特定计算机上的汇编语言的翻译程序。有时,编译器会生成汇编语言以作为其目标语言,然后再由一个汇编程序将它翻译成目标代码。4. 扫描,分析(语法,词法)的任务扫描的任务是将源程序读作字符文件并将其分为若干个记号 扫描程序的任务是从源代码中读取字符并形成由编译器的以后部分(通常是分析程序)处理的逻辑单元。由扫描程序生成的逻辑单元称作记号( t o k e n)分析的任务是确定程序的语法,或称作结构分析程序的任务是从由扫描程序产生的记号中确定程序的语法结构,以及或隐式或显式地构造出表示该结构的分析树或语法树5. 上下文无关文法,最左推导,B
4、NF,EBNF,乔姆斯基文法层次 上下文无关文法说明程序设计语言的语法结构,利用了与正则表达式中极为类似的命名惯例和运算。二者的主要区别在于上下文无关文法的规则是递归的(recursive) 最左推导( leftmost derivation)是指它的每一步中最左的非终结符都要被替换的推导最右推导( rightmost derivation)则是指它的每一步中最右的非终结符都要被替换的推导。最左推导和与其相关的分析树的内部节点的前序编号相对应;而最右推导则和后序编号相对应最右推导的一个例子:文法规则:exp exp op exp | (e x p) | n u m b e rop + | -
5、| * 相关题目:3.3 EBNF中注意重复和可选的表示方法,语法图 6. 句子,句型,文法所定义的语言,分析树,抽象语法树7. 自顶向下,自底向上语法分析 自顶向下(t o p - d o w n)的分析算法通过在最左推导中描述出各个步骤来分析记号串输入。之所以称这样的算法为自顶向下是由于分析树隐含的编号是一个前序编号,而且其顺序是由根到叶。分为两类:回溯分析程序( backtracking parser)和预测分析程序( predictive parser) 自底向上的分析程序有两种可能的动作(除“接受”之外):1) 将终结符从输入的开头移进到栈的顶部。2) 假设有B N F选择Aa,将栈
6、顶部的串a归约为非终结符A。8. 为什么要解决公因子,左递归当有公因子存在时,不能立即区分出文法规则右边的选择当有左递归时,将导致一个无限循环。9. 写正则表达式,构造NFA,DFA,最小化(按照算法做)构造NFA(使用Thompson结构):1) 基本正则表达式 基本正则表达式格式a或,其中a表示字母表中单个字符的匹配,表示空串的匹配。与正则表达式a等同的N FA(即在其语言中准确接受)的是:与等同的N FA是:2) 并置 我们希望构造一个与正则表达式r s等同的N FA,其中r 和s 都是正则表达式。可将与rs 对应的N FA构造如下: 3) 在各选项中选择 我们希望在与前面相同的假设下构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 复习 要点

限制150内