编译原理考试试卷+答案A卷

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编译原理期末试卷
1.给出LL(1)分析方法的总控流程图。

(5分)
2.按指定类型给出下列语言的文法。

(10分)
(1) L1={ ca n b m| n≥0,m>0 } 用正规文法。

S→cA A→aA|aB|a B→bB|b
(2) L2={ 0n a 1n b m| n>0,m ≥0} 用二型文法。

S→0S1B|0a1 B→bB|c
3.文法G[S]为:(10分)
S→SdT | T T→T<G | G G→(S) | a
试给出句型adT<(S)的短语、简单(直接)短语、句柄和最左素短语。

短语:a, T, (S), T<(S), adT<(S) 直接短语:a, (S) 句柄:a 最左素短语:a 4.将文法G[S] 改写为等价的G'[S],使G'[S]不含左递归和左公共因子。

(5分)S→[A A→B]|AS B→aB|+a
S→[A A→B]A’A’→SA’|εB→aB|+a
5.判断下面文法是否为LL(1)文法,若是,请构造相应的LL(1)分析表,并写出aabbb 的分析过程。

(10分)
S→aD D→STe|ε T→bM M→bH H→M|ε
6.简述编译程序概念及构成。

(10分)
编译程序是现代计算机系统的基本组成部分.从功能上看,一个编译程序就是一个语言翻译程序,它把一种语言(称作源语言)书写的程序翻译成另一种语言(称作目标语言)的等价的程序.
7.设G=(V N,V T,P,<S>)是上下文无关文法,产生式集合P中任意一个产生式应具有什么样的形式?若G是正则文法呢?(10分)
2型(上下文无关):规则形式:A→β
A ∈VN,β∈ (VT⋃VN)*
3型(右线性):A→aB或A→a(右线性)
A→Ba或A→a (左线性)a ∈VT⋃{ε}
8.为文法G[E]:(10分)
V → N | N[E] E → V | V+E N → i
构造递归下降识别程序
E( ){ V( ); if symbol = ‘+’E( ); }
V( ){ N(); if symbol = ‘[’ { E(); if symbol != ‘]’error(); }
N( ){ if symbol != ‘i ’ error(); }
/* 这样的写法很简化,当文法提取左公因子后,需要计算相关非终结符的Follow 集,才能确定什么时候用空串规则推导。

*/
9.对给定正则表达式(d|ad)(b|ab)+ 构造其DFA M (10分)
10.将下图的NFA 确定化为DFA 。

(10分) NFA:
含有Y 的状态子集为DFA 的终态 11.简答题(10分)
(1) 什么是文法,给出DFA 的定义
一个确定的有穷自动机(DFA )M 是一个五元组:M=(K ,Σ,f ,S ,Z )其中 1.K 是一个有穷集,它的每个元素称为一个状态;
2.Σ是一个有穷字母表,它的每个元素称为一个输入符号,所以也称Σ为输入符号表;
3.f 是转换函数,是在K ×Σ→K 上的映射,即,如 f (ki ,a )=kj ,(ki ∈K ,kj ∈K )就意味着,当前状态为ki ,输入符为a 时,将转换为下一个状态kj ,我们把kj 称作ki 的一个后继状态;
4.S ∈K 是唯一的一个初态;
5.Z K 是一个终态集,终态也称可接受状态或结束状态。

(2) 自顶向下的语法分析中需要解决那些问题? 左递归和回溯。

相关文档
最新文档