资源描述:
《《编译原理》课程研讨题(2014)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、编译原理课程学习研讨题上海大学计算机学院《编译原理》课程组2014年2月第一次研讨、第一批(第2周)1.讨论:(1)编译方法与解释方法的主要区别(2)编译程序组合中分端和分遍的作用(3)编译程序生成方法中自编译与自展的含义2.编写PL/0程序,分别完成:(1)输入两个正整数x和y,求出x和y的最大公约数zi(2)计算:S=∑x/i!i=1~n3.扩充PL/0语言文法的定义,增加实数类型和数组类型。例:Vari:integer;r:real;A:array[1..10]ofreal;„„A[i]:=r;4.构造一个文法,使其语言是奇数集,且每个奇数
2、不以0开头。5.设有上下文无关文法G[S]:S→aAbA→aBA→aB→bAB→b试构造与G[S]等价的正规文法*6.构造一个DFA,接受∑={a,b}上由正规式aa*(a
3、ba)b定义的字符串并给出相应的正规文法。第一次研讨、第二批(第3周)1.构造下列语言的文法,并分析比较nn(1)L1(G)={ab
4、n≥1}n(2)L2(G)={(ab)
5、n≥1}nm(3)L3(G)={ab
6、n,m≥0}nm(4)L4(G)={ab
7、n,m≥1}2.定义一个文法,产生表达式E:1)含有双目运算符+,*2)+的优先级高于*3)+右结合,*左结合4)运算对象为
8、标识符i5)可用括号改变算符的优先级3.修改PL/0语言文法的定义,扩充下列语句的功能。1)扩充条件语句的功能,使其为:if<条件>then<语句>[else<语句>]2)扩充repeat语句,使其为:repeat<语句>{;<语句>}until<条件>4.定义一个文法,产生下列语言:该语言由a、b符号串组成,串中a和b的个数相同5.证明下列文法为二义文法(能否转换为等价的非二义文法?)1)G[S]:S→AA→AAA→aAbA→ab2)G[S]:S→aSbS→SbS→b6.写出Σ={a,b}上L={w
9、w中的a的个数为偶数}的正规式,构造接受L的
10、DFAM。第二次研讨、第一批(第4周)1.构造一个DFAM,接受Σ={a,b,d}上满足下列条件的符号串:1)以a开头,以d结尾2)包含“bb”3)d最多出现两次,且不相邻2.对一个文法若消除了左递归,提取了左公共因子后是否一定为LL(1))文法?试举例说明。3.已知文法G[E]的定义如下:E→E+T
11、TT→T*F
12、FF→(E)
13、i试构造一组递归下降分析子程序,使之识别G[E]所产生的语言。4.下面文法G[S产生a、b字符数相等的非空a、b字符串。S→aB
14、bAB→bS
15、aBB
16、bA→aS
17、bAA
18、a1)证明该文法是二义的。2)修改上述文法,不增
19、加非终结符,使之非二义。5.实验二词法分析第二次研讨、第二批(第5周)1.构造一个DFAM,接受={d,.,e,-},上的正规式dd(.dd)(e(-)dd)表示的无符号数的集合。其中d为0~9的数字。2.设有文法G[E]:E→ETE
20、(E)
21、iT→+
22、*1)证明G[E]是一个非LL(1)文法2)把G[E]等价改写为LL(1)文法G1[E],并给出证明3)构造题2)中LL(1)文法G1[E]的预测分析表:3.已知文法G[P]的定义如下:P→beginDSendD→D;d
23、dS→S;s
24、s试构造一组递归下降子分析程序,使之识别
25、G[P]所产生的语言。4.正规文法(又称为右线性文法):文法中每一条产生式α→β的形式都为A→aB或A→a。左线性文法:每一条产生式α→β的形式都为A→Ba或A→a。设计一个算法,把给定的左线性文法转换为等价的右线性文法。5.实验二词法分析第三次研讨、第一批(第7周)1.设有文法G[S]:S→aBc
26、bABA→aAb
27、bB→b
28、1)证明G[S]是一个LL(1)文法2)构造G[S]的预测分析表3)给出baabbb的分析过程2.设采用自底向上的移进-归约语法分析,属性文法G[A]如下:A→aB{print“0”}A→c{print“1”}B→Ab{
29、print“2”}1)输入为aacbb时,打印的符号串是什么?2)写出aacbb的语法制导分析过程3.设有文法G[S’]:(0)S’→S(1)S→SaA(2)S→a(2)A→AbS(3)A→b(1)构造G[S]的LR(0)项目规范族C={I0,I1,…In},(2)构造SLR(1)分析表,判断G[S]的文法类型4.设有文法G[S]:S→SaF
30、FF→FbP
31、PP→c
32、d1)构造G[S]的算符优先关系表2)分别给出cadbdac#和dbcabc#的分析过程5.实验三语法分析第三次研讨、第二批(第8周)1.设有文法G[S’]:(0)S’→S(3)S→
33、aS(4)S→bA(2)A→dA(3)A→d(1)构造G[S]的LR(0)项目规范族C={I0,I1,…In},(2)说明G[S]属于哪