编译原理第1阶段练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
考试科目:《编译原理》第1章至第4章(总分100分)时间:90分钟
一、选择与填充(30)
1. 文法G[A]:A→ε A→aB B→Ab B→a是( )
A. 0型文法
B. 1型文法
C. 2型文法
D. 3型文法
2. 微小语言Micro的单词有下面的几种:标识符、_____________、实常数、保留字、___________、换行符。
3.编译程序的功能可以分解为词法分析、语法分析、___________________、中间代码生成、中间代码优化、目标代码生成。
4. 词法分析器的输入是( )。
A. 单词符号串
B. 源程序
C. 语法单位
D. 目标程序
5. 一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组( )。
A.句子 B.句型 C.单词 D.产生式
6. 若一个文法是递归的,则它所产生的语言的句子是( )。
A.无穷多个 B.有穷多个 C.可枚举的 D.个数是常量
二、给出与正规式R=1(0|1)*101等价的NFA。(14)
三、写出下面程序经词法分析后的TOKEN表示。(16)
begin var X:real;
var J:integer;
read(J);
J:=J+(J*20);
X:=J-1;
Write(2*J+X)
End
四、已知文法 G[E] 为:(20)
E→T|E+T|E-T T→F|T*F|T/F F→(E)|i
①该文法的开始符号(识别符号)是什么?
②请给出该文法的终结符号集合 Vt 和非终结符号集合 Vn 。
③找出句型 T+T*F+i 的所有短语、简单短语和句柄。
五、已知文法G(S) S→a| (T) T→T,S|S
写出句子((a,a),a)的规范归约过程及每一步的归约规则和句柄。(20)
附:参考答案:
一、选择与填充(30)
1. 文法G[A]:A→ε A→aB B→Ab B→a是( D )
A. 0型文法
B. 1型文法
C. 2型文法
D. 3型文法
2. 微小语言Micro的单词有下面的几种:标识符、___整常数____、实常数、保留字、__符号词__、换行符。
3.编译程序的功能可以分解为词法分析、语法分析、______语义分析_____、中间代码生成、中间代码优化、目标代码生成。
4. 词法分析器的输入是( B )。
A. 单词符号串
B. 源程序
C. 语法单位
D. 目标程序
5. 一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组( D )。
A.句子 B.句型 C.单词 D.产生式
6. 若一个文法是递归的,则它所产生的语言的句子是( A ) 。
A.无穷多个 B.有穷多个 C.可枚举的 D.个数是常量
二、给出与正规式R=1(0|1)*101等价的NFA。(14)
三、写出下面程序经词法分析后的TOKEN表示。(16)
begin var X:real;
var J:integer;
read(J);
J:=J+(J*20);
X:=J-1;
Write(2*J+X)
End
解:
$begin $var ($id,X) $colon $real $semi $line
$var ($id,J) $colon $integer $semi $line $read $LParen ($id,J) $RParen $semi $line ($id,J) $assign ($id,J) $plus $Lparen ($id,J) $mult ($intC,20) $RParen $semi $line ($id,X) $assign ($id,J) $subs ($intC,1) $semi $line $write $LParen ($intC,2) $mult ($id,J) $plus ($id,X) $RParen $semi $End
四、已知文法 G[E] 为:(20)
E→T|E+T|E-T T→F|T*F|T/F F→(E)|i
①该文法的开始符号(识别符号)是什么?
②请给出该文法的终结符号集合 Vt 和非终结符号集合 Vn 。
③找出句型 T+T*F+i 的所有短语、简单短语和句柄。
解:①该文法的开始符号(识别符号)是E。
②该文法的终结符号集合Vt={+、-、*、/、(、)、i}。非终结符号集合Vn={E、T、F}。
③句型T+T*F+I的短语为i、T*F、第一个T、T+T*F+i;
简单短语为i、T*F、第一个T;
句柄为第一个T。
五、已知文法G(S) S→a| (T) T→T,S|S
写出句子((a,a),a)的规范归约过程及每一步的归约规则和句柄。(20)解:句型归约规则句柄
((a,a),a) S→a a
((S,a),a) T→S S
((T,a),a) S→a a
((T,S),a) T→T,S T,S
((S),a) T→S S
((T),a) S→(T) (T)
(S,a) T→S S
(T,a) S→a a
(T,S) T→T,S T,S
(T) S→(T) (T)
S