编译原理复习提纲2

  • 格式:doc
  • 大小:19.00 KB
  • 文档页数:2

编译原理题型及分数比例
一、词法分析题(30分)
实验一 第二章 重点是完成实验一词法分析所涉及到的方法和过程
二、语法及语义分析(30分)
实验二及实验三 第三四章 实验二三所涉及到方法及过程
三、 LR分析题(15分)
第五章 以课本例子为主
四、 代码生成题(15分)
第六、八章 (PPT)能将条件语句、各种循环语句转换为三元组、四元组表示
五、 学习体会题(10分)

(红色内容为考试重点)
第一章
程序语言的分类?
程序翻译的方式有哪几种?
编译方式和解释方式有何不同?
编译程序包含有多少个阶段,各阶段功能和任务分别是什么?

第二章
词法分析工作特点?
高级程序语言的单词分多少种? 保留字,特殊符号,数字,标识符
什么是NFA,什么是DFA,有什么区别?
什么是正则表达式?正则表达式有什么作用? 准确地定义一种语言
如何构造正则表达式,看课本例子2.1-2.5
如何将一个正则表达式转换为NFA,看课本例子2.12-2.13
如何将一个NFA转换为DFA,看课本例子2.14-2.17
如何将一个DFA进行最小化,看例子2.18-2.19
将DFA转换为相应的分析程序 P41-P45
重点:词法分析构造步骤
正则表达式→NFA→DFA→DFA最小化方法→词法分析程序

第三章
什么是文法?什么是语言? 四元组G,G所能生成的所有句子集合就是语言
文法的分类是怎样的?它们之间有何关系? 正则文法,上下文无关文法,上下文相关文法,
短文文法
什么是递归规则,递归文法?
文法的推导和规约指的是什么?
推导方法有多少种?
什么是语法树?如何画语法树(看讲稿PPT例子,会画if、while语法分析树)

文法二义性指的是什么?如何判断文法具有二义性?
如果在一个文法定义的语言中,
存在一个串有多于一个的分析树/分析树,则称这个文法是二义性文法。
如果一个非终结符定义的规则多于一个,则可能出现文法的二义性。
文法二义性的消除方法有多少种?
1,消除二义性规则
2,将文法改变未一个强制正确分析树的构造格式

第四章
什么是自顶向下语法分析方法?
自顶向下分析有多少种具体的分析方法?
如何求First集合?如何求Follow集合?
如何进行左递归的消除?(看课本例子)
如何进行左分因子的消除?(看课本例子)
如何利用递归子程序方法进行语法分析?(看课本例子)
如何利用LL(1)分析方法进行语法分析?(看课本例子)
什么是LL(1)文法?
重点:语法及语义分析程序的构造步骤:
──构造文法规则
──递归下降语法分析方法
──左递归下降分析程序基础进行语义分析并生成中间代码
左递归的消除
FIRST集合和FOLLOW集合
LL(1)分析方法。

第五章 (LR方法课本例题5.6—5.17)
什么是自底向上语法分析方法?
自底向上语法分析有多少种具体的分析方法?LR(0) SLR(1) LR(1) LALR(1)
如何构造LR(0)DFA 、 LR(1)DFA 、 LALR(1)DFA?
如何构造LR(0)分析表、LR(1)分析表、SLR(1)分析表、LALR(1)分析表?
什么是LR(0)文法、LR(1)文法、SLR(1)文法、LALR(1)文法?
如何利用LR(0)、LR(1)、SLR(1)、LALR(1)进行语言语法分析,看课本5.6-5.17

第六章
语法制导翻译的方法有多少种?
高级程序设计语言的语句是如何分类的?其各自的翻译任务又是怎样的?
常见的中间代码有哪些,其展示形式是怎样的?
如何将一个算术表达式转换为逆波兰表示,四元组表示,三元组表示?
如何将一段代码翻译为中间代码(四元组,三元组,后缀表示)?(看PPT)

考试时间:7月3日 答疑:7月2日(整天) 教师休息室。