华南农业大学编译基础原理汇总题库
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华南农业大学期末考试题库(含参考答案)
考试科目: 编译原理 考试时间: 120 分钟
学号 姓名 年级专业
一、本题共6小题,每小题5分,共30
分。
1、写出下面右线性正规文法所对应的正规式。
2、给出下面语言集合的上下文无关文法。(2010 2014)
L 1={ a n b m
2、为正规集L 2={a n b m c k | n ≥1,m ≥1,k ≥1}构造一右线性正规文法。(2010)
3、按照编译过程的5个阶段得到编译程序的逻辑结构框图如下:
得分
4、简述编译过程的5个阶段及各阶段的主要功能。(多年必考)
6、简述语法制导翻译技术的基本思想。(
2013)
7、简述算符优先分析方法。(2013)
9、判断下图FA 是NFA 还是DFA ,并用正规式来描述它所识别的语言。
10、判断下图FA 是NFA 还是DFA ,并用正规式来描述它所识别的语言。(2011)
11、有文法及其语义子程序如下:
S →T { print(T.h) }
T → T 1*E { T.h= T 1.h +E.h } T → E { T.h=E.h } E →(T ) {E.h= T.h} E → a { E.h= 1 }
采用移进归约的分析方法,当分析器的输入为(a)*(a*a) 时,画出其语法树(可以带注释、也可以不带注释),并求输出的结果。
12(2014)、空心圆柱体的表面积计算公式如 S=2*3.1416*(R+r)*(R-r)+ 2*3.1416*(R+r)*h
采用LR 语法制导翻译技术生成相应的三地址代码,然后运用DAG 对其进行局部优化,试写出能生成最优目标代码的优化后的三地址代码序列。
13、试求表达式A+B*(-C)+B/(-C)对应的后缀式和三地址代码。(2011)
14、考虑如下的三地址语句序列:(2011)
(1). 将该代码序列划分成基本块,并给每个基本块一个序号; (2). 画出该代码序列的流图,每个基本块用(1)的序号表示; (3). 若有循环,列出构成循环的节点(
基本块)。(10分) (1).如图分成四个基本块B1、B2、B3、B4 (2).流图:
(3).构成循环的基本块是{B2, B3}
15、有翻译模式如下:
S’ →S { print(S.h) } S → a { S.h=0 } S →(T ) {S.h= T.h+1} T → T 1,S { T.h= T 1.h +S.h } T → S { T.h= S.h }
采用移进归约的分析方法,当分析器的输入为(a,(a)) 时,画出其语法树(可以带注释、也可以不带注释),并求输出的结果。(2011)
得分
二、构造识别下列语言的最小DFA(共20分):
1、正规式1(0|1)* 0 | 0;(7分)
构造识别下列语言的最小DFA
(共15分):(2011)
得分
3、
构造下列正规式相应的DFA(用状态转换图表示)(15)(2008)(7)
(8)
(9)
(7)
(8)(9)
得分
7、将下图NFA确定化。(10分)(2013)
8、将下图DFA化简。(5分)(2013)
9.有文法如下:
S → a | b | (T) T → TeS | S
(10
分)
10.有定义算术表达式的文法如下:(2011)
E → E+T | E-T | T T → T*
F | T/F | F F → P ↑F | P P → (E) | i
构造句型E+T*P ↑P-i 的语法树;并指出该句型的所有短语、直接短语、素短
语、句柄。(10分)
11、有文法如下:(共15分) S → aSe | ae
(1) 构造文法的识别规范句型活前缀的DFA ;
(2) 分别写出上一步DFA 各状态所识别的活前缀;
(3) 给出符号串????的LR 移进-归约过程(包括状态栈、符号栈、输入串、分析动作)。
(2分)短语:(Sebe(a))、Sebe(a)、
Seb 、(a)、S 、b 、a
(1分)直接短语:S 、b 、a
(1分)素短语:b 、a
(1分)句柄:S
(1).(6分)拓广文法并给产生式编号:S’→S ①S→ aSe ②S→ae
12.有定义算术表达式的文法如下:
E → E+T | E-T | T T → T*
F | T/F | F F → P ↑F | P P → (E) | i
构造句型P ↑i*(E+F-T)的语法树;并指出该句型所有的短语、直接短语、素短语以及句柄。(10分)
13、给出下面语言的相应文法:(10)(2008)
L 1={a 2n+1 b n+1 | n ≥1} L 2={a n b m+n a m | n ≥1,m ≥0}
14、设有文法G[A]:(2008)
A →BCc | gD
B B →bCDE |ε
C →DaB | ca
D →dD |ε
得分
语法树: (5分)
G1:
S →aaSb|ab
G1: S →AB
A →aAb | ab
B →bBa | ε
E→gAf | c
(1)计算该文法的每一个非终结符的FIRST集和FOLLOW集;
是LL(1)文法。