- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理第4章测试卷
编译原理
2014—2015学年第二学期第四单元测试试卷
(闭卷考试) 时间:45分钟 满分:100分
姓名 班级 出题人 班级 软件12-4
题目 一 二 三 四 五 总分 得分 一、选择题(5*2分)(每题1分,共10分)
1. 下列文法中,_______是LL(1)文法。
A. S→aSb|ab B. S→ab|Sab C. S→aS|b D. S→aS|a
2. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于 分析法。
A. 自左至右 B. 自顶向下 C. 自底向上 D. 自右向左
3. 自上而下分析面临的四个问题中,不包括 。
A. 需消除左递归;B. 存在回朔;C. 虚假匹配;D. 寻找可归约串
4. 语法分析器接收以________为单位的输入,并产生有关信息供以后各阶段使用。
A. 表达式;B. 产生式; C 单词;D. 语句;
5. 自上而下分析的主旨是,对任何单词符号串,试图用一切可能的办法,从文法开始符号(根结点)出发,________。
A. 为输入串寻找最右推导; B. 为输入串寻找最左直接子树;
C. 为输入串建立最右直接子树;D. 为输入串寻找最左推导;
二、简答题(2*10分)(每题10分,共20分)
6. 词法分析和语法分析都是对字符串进行识别的,二者有何区别?
7. 为什么要消除回溯?
三、分析题(4题共70分)
8.设有文法G[S]:
S→AB
A→bB|Aa
B→Sb|a
试消除该文法的左递归。(15分)
9.已知文法G[E]:
G[E]:E→E+T|TT→T*F|FF→i|(E)
请按递归子程序法为其构造语法分析程序。(20分)
10.文法G[M]是否是LL(1)文法,说明理由。(15分)
G[M]:M→TBT→Ba|εB→Db|eT|εD→d|ε
11. 已知文法G[S]:
S → uBDz
B → Br | w
D → EF
E → y | ?
F → x | ?
(1) 求每个非终结符的FIRST和Follow集。
(2) 构造这个文法的LL(1)分析表
(3) 说明这个文法不是LL(1)的;
(3) 尽可能少地修改此文法,使其成为能产生相同语言的LL(1)文法.(20分)
第四章答案
1-5
B D D C D
6. 答:词法分析的输入符号串是一个单词,而语法分析的输入符号串是一个句子。词法分析的一个输入符号串是由单个符号组成的单词;语法分析的输入符号串是由词法分析得来的单词组成的句子。
7. 假定当前轮到非终结符A去执行匹配任务,A共有n个候选?1、?2、……?n,这时候该用哪一个候选去替换A,原始的办法是采用对所有候选采取“试探”的方法。如果某个候选不成功就需要“回退”。这个回退的过程会导致前次匹配的许多工作推到重来,效率低。而且,最终匹配不成功的时候,难以直到输入串中出错的确切位置。
8.解:本题考查消除左递归的方法。
应用消除文法左递归的算法对文法G[S]消除左递归的过程如下:
将非终结符排序为:U1=S,U2=A,U3=B
进入算法排序:
i=1时,对文法无影响
i=2,j=1时:A→Aa有直接左递归,消去该直接左递归,得A→bBA’A’→aA’|ε
i=3,j=1时:改写文法,有B→ABb|aj=2时:改写文法,有B→bBA’Bb|a无左递归。
所以文法G[S]消除左递归后变为:
G’[S]:S→ABA→bBA’A’→aA’|εB→bBA’Bb|a
9.解:本题考查递归子程序的构造方法。
本题所给文法存在左递归,不满足递归子程序法对文法的要求,必须首先消除文法左递归,然后再构造分析程序。
因为文法只有左递归,采用扩充的BNF范式消除文法左递归得到:
G[E]:E→T{+T}T→F{*F}F→i|(E)
然后再应用书中介绍的方法即可求解。
假定用“ADVANCE;”表示对读取下一个单词的过程的调用。
相应的递归子程序为:
PROCEDURE P(E);
BEGIN
P(T);
WHILE SYM=’+’ DO
BEGIN
ADVANCE;
P(T)
END
END;
PROCEDURE P(T);
BEGIN
P(F);
WHILE SYM=’*’ DO
BEG
您可能关注的文档
最近下载
- 2024年黑龙江省哈尔滨市中考语文试题(含官方答案).docx
- 小学五年级语文上册教学课件《古诗三首》.pptx VIP
- 滨州医学院毕业答辩简洁模板.ppt
- 成人呼吸支持治疗器械相关压力性损伤的预防——2023中华护理学会团体标准.pptx VIP
- 数学--高思课本和乐乐课堂名称对应(1).pdf
- 常暗之厢常闇の箱.pdf
- 成人呼吸支持治疗器械相关压力性损伤的预防(2023中华护理学会团体标准).pptx VIP
- 《调皮的小猫咪》-美术课件.ppt VIP
- 七年级语文上册第二单元整体教学设计-优质教案.docx
- 成人呼吸支持治疗器械相关压力性损伤的预防-2023中华护理学会团体标准.pptx VIP
文档评论(0)