欢迎来到天天文库
浏览记录
ID:50514815
大小:295.50 KB
页数:9页
时间:2020-03-10
《编译原理陈志刚编译原理试卷.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《编译原理》软件工程2005级期终考卷学号:姓名:说明:1.本考卷中大写字母∈VN,其他符号∈VT;2、试卷中一、二两题请作在考卷上一、概念题(15分)1、编译过程一般分为几个阶段?各阶段的输入输出分别为什么?2、对下列状态转换图,写出状态0的处理过程:字母012字母其他数字其中:状态2的过程为proc2.3、文法G为:SaABAaB则判断G为LL(1)文法的条件是:二、判断题(10分。注:每答对一题得+2分;答错一题得-2分;不答者得0分)1、设∑为{a,b},则a,ba,{∑},Ø都是∑上的正规式。()2、对于上下文无关文法G[S],若SαABαβγ则A一定是一条产生式规则,其
2、中α,β,γ∈(VT∨VN)*()3、对于逆波兰后缀式,无论从哪头开始分析均可得到唯一正确的分解。()4、LR(0)分析法是一种规范归约法。()5、算符优先分析法只能用来分析算符优先文法。()三、(10分)设文法G3为:SAaBcAAa
3、aBb求句型AaBc的最左素语。四、(20分)设文法G[S]为SaAcB问:1、该文法是否为算符文法,为什么?AAb
4、b2、构造算符优先关系表。Bd3、该文法是否可改造为LL(1)文法,为什么?五、(本题20分)设文法G为:EeAf
5、eBgAaA
6、aBBb
7、a对于输入串eaaaf,采用LR(0)、LL(1)、SLR(1)等方法中合适的一种进行分析。
8、六、(25分)有作控制用的布尔表达式文法G[E]及其语义动作如下:1、构造SLR(1)分析表(若不是SLR(1))的,则说明理由)2、分析布尔式a∨b9、4)Bi{B.TC:=NXQ;B.FC:=NXQ+1;GEN(Jnz,ENTRY(i),,0);GEN(J,,,0)}软件0501班编译原理考试答案及评分细则一:1、(5分)2、(5分)3、(5分)条件:(1)文法G不含左递归;(2)对于每个非终结符,First(α)、First(β)、First(γ)两两不相交;(3)对于每个非终结符,不含能推出ε的产生式,故不考虑非终结符的First集和Follow集相交的情况。二、(每小题2分)1、×;2、×;3、√;4、√;5、√。三、(10分)方法一:句型AaBc的语法树为:故AaBc即为所求最左素短语。方法二:FIRSTVT(S)={a10、},LASTVT(S)={c},FIRSTVT(A)={a},LASTVT(A)={a},FIRSTVT(B)={b},LASTVT(B)={b}。则有:abc#a><=>b>>c>#<<<=对于#AaBc#,##,则最左素短语为AaBc。四、(20分)1、该文法是算符文法。因为其任一产生式的右部都不含相继(并列)的非终结符,即不含如下形式…QR…的产生式右部。(4分)2、FIRST(S)={a},LAST(S)={c},FIRST(A)={b},LAST(A)={b},FIRST(B)={d},LAST(B)={d}。(3分)构造算符优先关系表如下:(5分)ab11、cd#a<=>b>>>c<>d>#<<<=3、该文法可以改造为LL(1)文法。(8分)原因:①消除左递归:S→aAcBA→bA’A’→bA’12、εB→d;②FIRST(A)={a},FOLLOW(A)={c},FIRST(A’)={b,ε},FOLLOW(A’)={c},FIRST(B)={d},FOLLOW(B)={#},FIRST(S)={a},FOLLOW(S)={#},对于每个非终结符的各个产生式的FIRST集两两不相交;③对于A’,FIRST(A)∩FOLLOW(A)=Φ。综上所述,原文法可以改造成LL(1)文法。五、(20分)原文法不是LL(1)文法,故不能直接使用LL(13、1)分析法进行分析。步骤如下:1、拓广文法:①E’→E②E→eAf③E→eBg④A→aA⑤A→a⑥B→Bb⑦B→a(2分)2、项目集规范族:(6分)由此项目集规范族可判断,原文法非LR(0)文法,故不能直接使用LR(0)分析法进行分析。因此,使用SLR(1)分析法分析原文法。3、构造SLR(1)分析表如下:FOLLOW(A)={f};FOLLOW(B)={b,g};FOLLOW(E)={#}。ACTIONGOTO状态abefg#ABE0S211acc2S4353S64
9、4)Bi{B.TC:=NXQ;B.FC:=NXQ+1;GEN(Jnz,ENTRY(i),,0);GEN(J,,,0)}软件0501班编译原理考试答案及评分细则一:1、(5分)2、(5分)3、(5分)条件:(1)文法G不含左递归;(2)对于每个非终结符,First(α)、First(β)、First(γ)两两不相交;(3)对于每个非终结符,不含能推出ε的产生式,故不考虑非终结符的First集和Follow集相交的情况。二、(每小题2分)1、×;2、×;3、√;4、√;5、√。三、(10分)方法一:句型AaBc的语法树为:故AaBc即为所求最左素短语。方法二:FIRSTVT(S)={a
10、},LASTVT(S)={c},FIRSTVT(A)={a},LASTVT(A)={a},FIRSTVT(B)={b},LASTVT(B)={b}。则有:abc#a><=>b>>c>#<<<=对于#AaBc#,##,则最左素短语为AaBc。四、(20分)1、该文法是算符文法。因为其任一产生式的右部都不含相继(并列)的非终结符,即不含如下形式…QR…的产生式右部。(4分)2、FIRST(S)={a},LAST(S)={c},FIRST(A)={b},LAST(A)={b},FIRST(B)={d},LAST(B)={d}。(3分)构造算符优先关系表如下:(5分)ab
11、cd#a<=>b>>>c<>d>#<<<=3、该文法可以改造为LL(1)文法。(8分)原因:①消除左递归:S→aAcBA→bA’A’→bA’
12、εB→d;②FIRST(A)={a},FOLLOW(A)={c},FIRST(A’)={b,ε},FOLLOW(A’)={c},FIRST(B)={d},FOLLOW(B)={#},FIRST(S)={a},FOLLOW(S)={#},对于每个非终结符的各个产生式的FIRST集两两不相交;③对于A’,FIRST(A)∩FOLLOW(A)=Φ。综上所述,原文法可以改造成LL(1)文法。五、(20分)原文法不是LL(1)文法,故不能直接使用LL(
13、1)分析法进行分析。步骤如下:1、拓广文法:①E’→E②E→eAf③E→eBg④A→aA⑤A→a⑥B→Bb⑦B→a(2分)2、项目集规范族:(6分)由此项目集规范族可判断,原文法非LR(0)文法,故不能直接使用LR(0)分析法进行分析。因此,使用SLR(1)分析法分析原文法。3、构造SLR(1)分析表如下:FOLLOW(A)={f};FOLLOW(B)={b,g};FOLLOW(E)={#}。ACTIONGOTO状态abefg#ABE0S211acc2S4353S64
此文档下载收益归作者所有