四川大学期末考试试题 (闭卷)
(2010-2011学年第2学期)
1. 简答题 (12分)
(1) 编译器的前端和后端分别包括哪几个阶段?前后端分开有什么好处? (2) 解释器和编译器有什么本质区别? (3) 词法分析和语法分析的功能分别是什么? (4) 分析树与抽象语法树有什么不同?
2. 已知字母表??{a,b,c},定义在?上的语言L具有以下特征:(5分)
(1) 若出现a,则其后至少紧跟两个c; (2) 若出现b,则其后至少紧跟一个c。 试给出可以产生语言L的正规表达式。
3. 文法如下:(8分)
exp?exp addop term|term
addop?+|-
term?term mulop factor|factor
mulop?*
factor?(exp)|number
(1) 给出句子(8?5)*3的最左推导; (2) 构造(1)中句子的抽象语法树。
4. 文法如下:(10分)
exp?exp and exp|exp or exp|not exp|(exp)|TRUE|FALSE
(1) 此文法是否为二义文法?为什么?
(2) 试将文法改写为非二义文法,要求运算符优先级由低到高分别是or、and、
not,且and和or是左结合的,not是右结合的。
5. DFA构造题(20分) 已知正规表达式 (a|bc)*b
(1) 使用Thompson构造方法构造对应的NFA; (2) 用子集构造法将得到的NFA确定化为DFA; (3) 将得到的DFA最小化。
6. LL(1)分析题(20分) 文法如下:
A?Pa
P?bPa|bQb
Q?Qa|a
(1) 消除文法左递归,提左因子;
(2) 为所得文法的每个非终结符构造First集和Follow集; (3) 所得文法是LL(1)文法吗?为什么? (4) 构造所得文法的LL(1)分析表。
7. LR(k)分析题(25分) 文法如下:
declaration?typevar?list type?int|float
var?list?id,var?list|id
(1) 构造文法的LR(0)项目的DFA; (2) 构造SLR(1)分析表;
(3) 这个文法是SLR(1)文法吗?如果不是,请说明原因;
(4) 给出对应输入串int x,y,z进行SLR(1)分析的步骤(要求给出分析过程中每一步的详细情况,包括:分析栈、输出串及执行的动作)。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库四川大学2011年编译原理期末试题在线全文阅读。
相关推荐: