清华版编译原理课程考核01B

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

编译原理(B卷)
一、填空(2*19=38分)
1、编译过程一般分为词法分析、语法分析、、中间代码生成、代码优化和等阶段。

2、设文法G =(V
N ,V
T
,P,S),若P中的每一个规则都形如:A→aB 或A→a ,
其中 A、B为非终结符、a为终结符,则称此文法为型文法或文法。

3、在LR(1)文法中,L表示,R表示。

4、LR(0)项目集规范族中的项目可分为四类,即项目、项目、归约项目和接受项目,其中归约项目和归约项目或项目共存于一个项目集中会引起冲突。

5、表达式E:=a*b-d/(b-d)表示为逆波兰式为。

6、符号表中表项的三种排列方式为组织、排序组织和。

7、编译时能确定其所需占用空间的数据存放在数据区;对在程序运行时才能确定所需占用空间大小的可变数据及管理过程的控制信息,其空间分配一般采用或动态存储分配方式。

8、列举出常用的两种自底向上语法分析方法:和。

9、LEX/FLEX是的自动构造工具,YACC/BISON是的自动构造工具。

二、求下列文法G[S]对应的正规式:(5分)
S→aA
S→bB
A→bS
A→b
B→aS
B→a
三、如何判断任意给定的一个文法G[S]是否为LL(1)文法?若不是LL(1)文法,
应如何将其转换为等价的LL(1)文法?是否所有的非LL(1)文法都能转换为LL(1)文法? (10分)
四、把语句: (8分)
if X>10 and Y<10 then
A:=X*Y
else
A:=X+Y;
译成四元式序列。

五、已知文法G[E]: (共13分)
E→E-T
E→T
T→T*P
T→P
P→i
1、证明:i-T*i是文法的句型;(4分)
2、画出语法树;(3分)
3、指出该句型的所有短语、简单短语和句柄。

(6分)
六、如何判断任意给定的一个文法G[S]是否为:LR(0)文法、SLR(1)文法、LR(1)文法、LALR(1)文法?请给出具体的判断步骤。

(10分)
七、现有文法G[S’]:(共15分)
S’→#S#
S →a
S →^
S →(T)
T →T,S
T →S
1、计算G[S’]的FIRSTVT和LASTVT;(4分)
2、构造G[S’]的算符优先关系表,并说明G[E]是否为算符优先文法;(3分)
3、用关系图构造G[S’]的优先函数;(4分)
3、以表的形式给出句子(a,a)# 的算符优先分析过程。

(4分)。

相关文档
最新文档