1、 11/12 1 编译原理 A 信息科学技术学院 宫生文 计算 091-4 唐松生 (答案写在答题纸上,写在试题纸上无效)一、简答题(50)1(10)计算机执行用高级语言编写的程序有哪些途径? 它们之间的主要区别是什么? 答:计算机执行用高级语言编写的程序主要途径有两种,即解释与编译。像 Basic 之类的语言,属于解释型的高级语言。它们的特点是计算机并不事先对高级语言 进行全盘翻译,将其变为机器代码,而是每读入一条高级语句,就用解释器将其翻译为一条机器代码,予以执行,然后再读入下一条高级语句,翻译为机器代码,再执行,如此反复。总而言之,是边翻译边执行。 像 C,Pascal 之类的语言,属于
2、编译型的高级语言。它们的特点是计算机事先对高级语言 进行全盘翻译,将其全部变为机器代码,再统一执行,即先翻译,后执行。从速度上看,编译型的高级语言比解释型的高级语言更快2(12)有语言 L=w|w0,1 +,并且 w 中至少有两个 1,又在任何两个 1 之间有偶数个 0,试构造接受该语言的 DFA,并对其进行化简。3(10)分别构造表达式 5+76-2+76 的抽象语法树与 DAG 图4(10).把下面的语句翻译成四元式序列while Amn1.二、应用题(50)6(12).对下面的文法 GS:S-SaA|bB A-aB|c B-Bb|d1)消去该文法的左递归课程考试试题学期学年拟题人:校对人
3、:拟题学院(系):适 用 专 业: 2)计算消除左递归后的文法的每个非终结符的 FIRST 集和FOLLOW 集3)判断文法是否为 LL(1)文法;若是,请构造它的预测分析表。7(8).文法 GS:S-bTc S-a T-R R-R/S R-S,其中 S 为开始符号。符号串 bR/bTc/bSc/ac 是不是该文法的一个句型,请证实。若是句型,写出该句型的所有短语、素短语以及句柄。8(10). 已知文法A-aAd| aAb| 判断该文法是否 SLR(1)文法,若是构造相应分析表,并对输入串 ab 给出分析过程。9(8).文法及相应的翻译方案:S-bTc print “1”S-a print “
4、2”T-R print “3”R-R/S print “4”R-S print “5”对于输入符号串 bR/bTc/bSc/ac,该输入符号串的输出是什么?10(12).给出如下四元式序列: (1) J=0; (2)L1:I=0; (3) IF I8 goto L3; (4)L2:A=B+C; (5) B=D*C; (6)L3:IF B=0 goto L4; (7) Write B; (8) goto L5; (9)L4:I=I+1; (10) IF I8 goto L2; (11)L5:J=J+1; (12) IF J3 goto L 1; (13) halt 画出上述四元式序列的程序流程图 G, 求出 G 中各结点 N 的必经结点集 D(n), 求出 G 中的回边与循环。