编译原理考试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
考试题型:填空24%+简答4*4=16%+解答4*15=6
Chapter 1重要概念
1.什么编译程序?P3
答:编译程序的主要功能是把用高级语言编写的源程序翻译为等价的目标程序。
2.编译程序的工作过程?(6个阶段)P4
1、词法分析程序
2、语法分析程序
3、语义分析程序
4、中间代码生成
5、代码优化程序
6、目标代码生成
(不做优化是4个阶段,5、6不要)
3.编译程序的逻辑结构?P4 图1-2 编译程序的逻辑结构
4.执行高级语言编写的程序:(编译执行、解释执行)
5.(执行过程:单遍扫描、多遍扫描(大多数))
Chapter 2 前后文无关文法和语言
1.文法和语言的形式定义
产生语言就是制定出有限个规则(文法),借助于它们,就能产生出此语言的全部句子。
2.文法规则四要素:
文法 :四要素(VN,VT,S,P)。
3.句型的分析分两类方法:
自顶向下分析:从开始符推导出句子或句型
自底向上分析:从句子或句型归约出开始符
4.用语法树进行句型分析:
用语法树自顶向下进行推导,---最右推导
用语法树自底向上进行归约。--最左规约
4.文法和语言的Chomsky分类
1)0型文法或短语结构文法(PSG) 2)1型文法或前后文有关文法(CSG)
3)2型文法或前后文无关文法(CFG).
4)3型文法或正规文法。(左线性文法+右线性文法)
1)Chomsky定义的四种形式语言文法分别为0型文法,1型文法,2型文法 ,3型文法,其中3型文法用于描述词法,2型文法用于描述语法。
2)递归文法产生的语言语句集合是无限集合。
3)规范推导是最右推导,规范归约是最左归约。
定义每种语言的文法都是不(不|—)唯一的。
文法的化简与改造主要包括无用符号和无用产生式的删除,ε-产生式的消除 ,单产生式的消除几项内容。
Chapter3 词法分析及词法分析程序
1)了解6种定义,特点
正规文法、状态转换图、有限自动机FA(NFA、DFA)、状态转换矩阵、正规表达式、正规集2)正规式:将文法的终结符号用以上三种运算符连接起来组成的正规文法的表达式,是另一种用于描述正规文法的直观表示。
3)正规集:正规式所描述的字符串的集合。
4)词法分析方法(正规文法、状态转换图、状态转换矩阵)
5)单词描述(正规文法、状态转换图、有限自动机FA(NFA、DFA)、状态转换矩阵、正规表达式、正规集
1.单词的编译器内部表示为二元式(class , value)
2.单词的描述形式有许多种,包括文法形式正规文法,图示方式状态转换图,便于计算机存储的状态转换矩阵,自动机又分为NFA,DFA两种,正规表达式和正规集最便于体现单词的结构
3.Bell实验室M.Lesk等人用C语言研制的一个词法分析程序的自动生成工具叫LEX
4.判断(对)所有带有ε的自动机都是非确定的自动机
Chapter 4 语法分析和语法分析程序
1.语法分析方法:
自顶向下分析法:如递归下降法,LL(1)等(最左推导)
自底向上分析法:如算符优先法(分析表达式常用),LR等(最右规约)
1、LL(1)分析器由缓冲区,分析栈,分析表,
控制程序四部分组成。
2、语法分析的方法主要分为自顶向下和自底向上两大类,前者又包括LL(1)分析法和递归下降法两种具体方法,后者又包括LR分析法和算符优先分析法两种具体方法
3、判断
(错)1、自顶向下语法分析采用规范推导。(最左)
(对)2、所有左递归文法均无法直接用LL(1)分析方法进行语法分析。
(错)3、所有的自底向上语法分析,每步分析都是找出当前句型的句柄进行归约。(算符优先矩阵→最左素短语)
(对)4、一个文法如果是LR(0)文法,则必定是LR(1)文法。(更多的文法适应SLR(1))
Chapter 5 语法制导翻译及中间代码生成
1)语法制导翻译:在一遍扫描中,由语法分析引导,既完成语法分析任务,又完成语义分析和中间代码生成方面的工作。
2)属性文法:一种附带有语义属性的前后文无关文法。
3)中间代码:介于源程序与目标程序之间的代码形式,
形式简单、含义明确、结构清晰、易于优化
4)四元式:(操作符,第一操作数,第二操作数,结果)
大题:(4道)
2-大题:1)画出句子的语法树,找出所有的短语,直接短语和句柄(运算符最低原则)3-大题:正规式--状态图(NFA)--确定化---最小化
(有正规式构造Fa---将之确定化---最小化)
4-大题:LR(0)分析法、SLR(1)分析表
5-大题:1.算术表达式
2.布尔表达式改进记值
3.程序流程控制语句的翻译(序列、条件分支、while循环)