《编译原理》训练题
第一章
一.填空题
1.一个编译程序是一个 ① ,编译程序完成从 ② 语言 所写的源程序到 ③ 语言所写的目标程序的翻译工作。
2.编译程序的整个工作划分成阶段进行的,典型的划分方法,将编译过程分成六 个阶段: ① , ② , ③ , ④ , ⑤ , ⑥ 。 3.对编译程序而言,输入数据是 ① ,输出结果是 ② 。 4.编译方式与解释方式的根本区别在于 。
二 判断题
( ) 1.汇编程序是一个编译程序,它把汇编语言程序翻译成机器语言执行。 ( ) 2.编译程序是一个语言翻译程序,它把汇编语言程序翻译成机器语言执
行。
三.选择题
1.汇编程序是将 (1) 翻译成 (2) ;编译程序是将(3) 翻译成(4) 。
可选项有:
a.汇编语言程序 b.机器语言程序
c.高级语言程序 d.汇编语言程序或机器语言程序
e.汇编语言程序或高级语言程序 f.机器语言程序或高级语言程序
2.用高级语言编写的程序经编译后产生的程序叫(1) 。用不同语言编写的程序产生(1)
后,可用(2)连接在一起生成机器可执行的程序。在机器中真正执行的是(3)。 可选项有:
a.源程序 b.目标程序 c.函数 d.过程 e.机器指令代码 f.模块 g.连接程序 h..程序库 3.编译程序与具体的机器(1),与具体的语言(2)。
可选项有: a.有关 b.无关
4.编译程序是一种常用的 软件。 可选项有:
a.应用 b.系统
5.编译程序生成的目标程序 是机器语言的程序。 可选项有:
a.一定 b.不一定
四、思考题
1.给出一个典型的编译程序的结构框图。
2.什么是前端和后端?设想相同的前端不同的后端,相同的后端不同的前端生成的编译程序分别有何特征?
第二章
一.填空题
1. INT O A在每个过程目标程序的入口都有这样一条指令,用以完成 ① 的
工作,A域的值为 ② 。
2. OPR O O在每个过程目标程序的 ① 都有这样一条指令,用以完成 ② 的工作。
3.PL/0编译程序运行时的存储分配策略采用栈式动态分配,用 ① 链和 ②
链的方式解决递归调用和非局部变量的引用问题。
4. 是构成语言文法的单词,是语法成分的最小单位。
二、思考题
1. 若PL/0编译程序运行时的存储分配策略采用栈式动态分配,并用动态链和静态链的方
式分别解决递归调用和非局部变量的引用问题,试写出下列程序执行到赋值语句b:=10时运行栈的布局示意图。 var x,y procedure p;
var a; procedure q; var b; begin (q) b:=10; end(q); procedure s; var c,d; procedure r; var e,f; begin(r)
call q; end(r); begin(s) call r; end(s); begin(p)
call s; end(p);
begin(main) call p; end(main).
2. PL/0编译程序所产生的目标代码是一种假想栈式计算机的汇编语言,请说明该汇编语言
中下列指令各自的功能和所完成的操作。
INT o A OPR o o CAL o A
第三章
一.填空题
1.设A是符号串,且A=CD,则X= 。 2、产生式是用于定义 的一种书写规则。
3、一个上下文无关文法所含四个组成部分是一组 ① 、一组 ② 、
一组 ③ 、一组 ④ 、。
4.假设G是一个文法,S是文法的开始符号,如果S?*X,则称X是 。 5.文法G产生的 的全体是该文法描述的语言。
6.文法G[S]:S→Ac|aB A→ab B→bc描述的语言L(G[S])= { }。 7.已知文法G[E]:
E::=T|E+T|E-T T::=F|T*F|T/F F::=(E)|i
该文法的开始符号(识别符号)是① 终结符号集合VT是{② },非终结符号集合VN是{③ },句型T+T*F+i的简单短语有④. ,句柄为 ⑤ 。
8.实际使用中,我们将限制文法中不能含有 ① 和 ② 规则。 9.G[E]为: E->E+T|E-T T->T*F|T/F|F F->(E)|i
因为存在推导序列: E=>E+T=>E+T*F 所以句型E+T*F 的短语有:
① 直接短语有: ② 句柄为: ③
n
10.三型文法为: S->aS|a 所描述的语言是{ a| n>= }11.文法
S->a|^|(T) T->T,S|S
(1) 下面对(a,(a,a)的推导为 推导:
S=>(T)=>(T,S)=>(S,S)=>(a,S)=>(a,(T))=>(a,(T,S)) =>(a,(S,S))=>(a,(a,S))=>(a,(a,a))
二 判断题
( ) 1. 设G=(VN,VT,P,S),若P中的每一个产生式α→β满足|β|≥|α|,仅
仅S→ε除外,则文法G是上下文无关的或2型文法。
( ) 2. 设G=({S,A,B},{a,b},P,S),其中P由下列产生式组成: S→aB∣bA A→a∣aS∣bAA B→b∣bS∣aBB
文法G是上下文无关的或2型文法。
( ) 3. 设G=(VN,VT,P,S),若P中的每一个产生式α→β满足α是一非 终结符,则文法G是上下文有关的或2型文法。
3
( ) 4.若一文法G=(VN,VT,P,S)是上下文无关文法,则该文法G一定是上下文有关文法。
( ) 5.若一文法G=(VN,VT,P,S)是3型文法,则该文法G一定是上下文有关文法。( )6.如果一个文法存在某个句子对应两棵不同的语法树,则这个文法一定是二义的。 ( )7.∑具有可数的无穷数量的元素,ε∈∑。
*
*
( )8.文法G描述的语言是由文法的识别符号推出的所有符号串的集合 ( )9.一个句型中的最右直接推导称为该句型的句柄。
( )10.已知语言L={anbn|n>=1},则文法A::=aAb|ε,可以产生语言L。
( )11.文法G[E]为: E->E+T|E-T T->T*F|T/F|F F->(E)|i不是二义的.
三.选择题
1.在编译中产生语法树是为了( ) 可选项有:
a.语法分析 b.语义分析 c.词法分析 d.产生目标代码 2.文法G描述的语言是 的集合。 可选项有:
a 文法G 的字汇表V中所有符号组成的符号串 b 文法G的字汇表V 的闭包V*中的所有符号串 c 由文法的识别符号推出的所有符号串
d 由文法的识别符号推出的所有终结符号串 3.一个语言的文法是 。 可选项有: a 唯一的 b 不唯一的 c个数有限的
4.已知语言L={anbbn|n>=1},则下述文法中, 可以产生语言L。 可选项有:
a Z::=aZb|aAb|b A::=aAb|b b Z::=aAb A::= aAb|b
c Z::=AbB A::=Aa|a B::=Bb|b d A::=aAb A::=b 5.设有文法G[I]:
I→I1|I0|Ia|Ic|a|b|c
下列符号串中是该文法的句子的有 。 1.Ab0 2.a0c01 3.aaa 4.cb10 可选项有:
a.1 b.2 3 c.3 4 d.1 2 3 4
6.给定文法A→Bc|cc,B→c|b下面的符号串中,为该文法句子的是 。