2022年陕师大编译原理考试题 .pdf

上传人:Q****o 文档编号:30563344 上传时间:2022-08-06 格式:PDF 页数:5 大小:264.92KB
返回 下载 相关 举报
2022年陕师大编译原理考试题 .pdf_第1页
第1页 / 共5页
2022年陕师大编译原理考试题 .pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《2022年陕师大编译原理考试题 .pdf》由会员分享,可在线阅读,更多相关《2022年陕师大编译原理考试题 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1 编译原理试题及答案一、对于文法GS :S 1A | 0B | A 0S | 1AA B 1S | 0BB (3 分 ) 请写出三个关于GS 的句子; (4 分 ) 符号串11A0S 是否为G S 的句型?试证明你的结论。 (3 分 ) 试画出001B 关于 G S 的语法树。二、请构造一个文法,使其产生这样的表达式E :表达式中只含有双目运算符+ 、 * ,且 + 的优先级高于* , + 采用右结合,* 采用左结合,运算对象只有标识符i ,可以用括号改变运算符优先级。要求给出该文法的形式化描述。三、设有语言L= | 0,1 + ,且不以0 开头,但以00 结尾 。试写出描述L 的正规表达式

2、;构造识别L 的 DFA (要求给出详细过程,并画出构造过程中的NDFA 、 DFA 的状态转换图,以及DFA 的形式化描述) 。四、给定文法GS :S AB A aB | bS | c B AS | d (6 分 ) 请给出每一个产生式右部的First 集; (3 分 ) 请给出每一个非终结符号的Follow 集; (8 分 ) 请构造该文法的LL(1) 分析表; (8 分 ) 什么是LL(1) 文法?该文法是LL(1) 文法吗?为什么?五、给定文法GS :S SaA|a A AbS|b 请构造该文法的以LR(0) 项目集为状态的识别规范句型活前缀的DFA 。请构造该文法的LR(0) 分析表

3、。什么是LR(0) 文法?该文法是LR(0) 文法吗?为什么?什么是SLR(1) 文法?该文法是SLR(1) 文法吗?为什么?六、给定下列语句:if a+bc then x := a*(b-c) + (b*c-d)/e 写出其等价的逆波兰表示;写出其等价的四元式序列。七、已知下列C 语言程序:int * f() int a = 100; return &a; main() int * i = f(); char a = “compiler”; printf( “the result is %dn”, *i); 程序运行结果为:the result is 26157, 请解释为什么程序运行的结果

4、不是期望的“the result is 100 ”?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 2 1.1 三个0 和 1 数量相等的串1.2 S = 1A = 11AA = 11A 0S 1.3 第二题构造文法如下: GE=(+,*,(,),i, E,F,T, P, E) , 其中 P 为:EE*F|F FT+F|T T(E)|i 第三题( 1 )正规表达式:1(0|1) * 00 ( 2 )第一步:将正规表达式转换为ND

5、FA 第二步:将NDFA 确定化为DFA :造表法确定化(3 分) 确定化后DFA M 的状态转换表(2 分 ) 状态输入I 0 I 1 t 0 1 S A,D,B q 0 q 1 A,D,B D,B,C D,B 重新命名q 1 q 2 q 3 D,B,C D,B,C,Z D,B q 2 q 4 q 3 D,B D,B,C D,B q 3 q 2 q 3 D,B,C,Z D,B,C,Z D,B q 4 q 4 q 3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页

6、 - - - - - - - - - 3 DFA 的状态转换图(3 分)第三步:给出DFA 的形式化描述DFA M = ( q 0 , q 1 , q 2 , q 3 , q 4 , 0,1, t, q 0 , q 4 )t 的定义见M 的状态转换表。第四题( 1 ) First(AB) = a, b, c First(aB) = a First(bS) = b First(c) = c First(AS) = a, b, c First(d) = d ( 2 ) Follow(S) = #, a, b, c, d Follow(A) = a, b, c, d Follow(B) = #, a

7、, b, c, d ( 3 ) LL(1) 分析表(8 分)V N V T a b c d # S S ? AB S ? AB S ? AB A A ? aB A ? bS A ? C B B ? AS B ? AS B ? AS B ? d ( 4 )对于文法G 的每一个非终结符U 的产生式U ? 1 | 2 | | n ,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 4 如果 SELECT(U ? i ) ? SELECT

8、(U ? j ) = ? ( i j, i,j=1, 2, , n ),则文法G 是一个LL(1) 文法。该文法是LL(1) 文法。因为 SELECT(A ? aB) ? SELECT(A ? bS) ? SELECT(A ? C) = ? SELECT(B ? AS) ? SELECT(B ? d) = ? 第五题拓广文法1 分GS : S S S SaA S a A AbS A b 该文法的以LR(0) 项目集为状态的识别规范句型活前缀的DFA : 该文法的LR(0) 分析表:状态ACTION GOTO a b # S A 0 S 2 1 1 S 3 acc 2 r 3 r 3 r 3 3

9、 S 5 4 4 r 2 r 2 /S 6 r 2 5 r 5 r 5 r 5 6 S 2 7 7 r 4 /S 3 r 4 r 4 LR(0) 文法:该文法的以LR(0) 项目集为状态的识别规范句型活前缀的DFA 中没有冲突状态。该文法不是LR(0) 文法因为存在冲突状态:I 4 和 I 7 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 5 SLR(1) 文法:该文法的以LR(0) 项目集为状态的识别规范句型活前缀的DFA

10、中有冲突状态,冲突可用 FOLLOW 集解决。该文法不是SLR(1) 文法。因为 FOLLOW(S)=a,b,# ,所以无法解决冲突第六题( 1 ) (1) ab+c (23) jumpf (8) xabc-*bc*d-e/+:= (23) . ( 2 )第七题C 语言采用栈式存储分配方法作为其运行环境;f() 返回的是指向其活动记录某一位置的指针;f() 返回后,其活动记录被释放,并且,其对应的存储空间被数组a 占用,再次引用该指针时,其结果由于对回收的活动记录所占用的内存空间的再分配,其所指的值发生了改变。释放在前,引用在后的现象称: Dangling Reference 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁