- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理试题
计算机学院2001级 班 学号 姓名
题号 一 二 三 四 五 六 七 八 九 十 十一 十二 总分 满分 12 6 8 7 8 8 12 12 7 6 6 8 100 得分 一 选择题(12分)
【 】1.词法分析器的输入是 。
A.符号串 B.源程序 C.语法单位 D.目标程序
【 】2.两个有穷自动机等价是指它们的 。
A.状态数相等 B.有向弧数相等
C.所识别的语言相等 D.状态数和有向弧数相等
【 】3.文法G:S → xSx | y 所识别的语言是 。
A.xy*x B.(xyx)* C.xx*yxx* D.x*yx*
【 】4.设a,b,c为文法的终结符,且有优先关系a(b和b(c,则 。
A.必有a(c B.必有c(a
C.必有b(a D.选项A、B和C都不一定成立
【 】5.若状态k含有项目“A→α.”,且仅当输入符号a∈FOLLOW(A)时,才用规则“A →α”归约的语法分析方法是 。
A.ALR分析法 B.LR(0)分析法
C.LR(1)分析法 D.SLR(1)分析法
【 】6.生成中间代码时所依据的是 。
A.语法规则 B.词法规则 C.语义规则 D.等价变换规则
【 】7.表达式(┐a∨b)∧(c∨d)的逆波兰表示为 。
A.┐ab∨∧cd∨ B.a┐b∨cd∨∧
C.ab∨┐cd∨∧ D.a┐b∨∧cd∨
【 】8.基本块 。
A.只有一个入口语句和一个出口语句 B.有一个入口语句和多个出口语句
C.有多个入口语句和一个出口语句 D.有多个入口语句和多个出口语句
二 判断题6分认为正确的“T”,错的“F”)
【T 】1.同心集的合并有可能产生“归约/归约”冲突。
【T 】2.一个文法所有句子的集合构成该文法定义的语言。
【 】3.非终结符可以有综合属性,但不能有继承属性。
【T 】4.逆波兰表示法表示表达式时无需使用括号。
【 】5.一个有穷自动机有且只有一个终态。
【】6.若过程p第k次被调用,则p的DISPLAY表中就有k+1个元素。
三 填空题8分最常用的两类语法分析方法是 和 分析法。→T|E+T T→F|T*F F→P↑F|P P→(E)|i,句型T+T*F+i的直接短语为 β(V*且a(则称“A ((.”为 β”为 四分8分分写一个文法,使其语言是| a
B → Bb | d
(1)构造与G[A]等价的LL(1)文法;
(2)构造G’[A]的预测分析表。
八(12分)考虑文法
G[S]: S → AS | b
A → SA | a
(1)构造文法的可归前缀图(活前缀的DFA);
(2)判断文法是否是LR(0)文法,并说明理由。
九(7分翻译成四元式序列。hile C∧BD do 6分程序参数传递方式分别执行程序后的输出值传名传”1”) }
A →(B { print(”2”) }
A → a { print(”3”) }
B → Aa) { print(”4”) }
若对输入序列b(((aa)a)a)b 进行自底向上分析,请写出输出序列十二(8分)对PL/0语言扩充ELSE子句:
条件语句 ::= IF 条件 THEN 语句 [ ELSE 语句 ]
请在空缺处填空,完成条件语句的编译算法:
switch (SYM) {
……
case IFSYM:
GetSym() ;
CONDITION(SymSetUnion(SymSetNew(THENSYM),FSYS),LEV,TX);
if (SYM==THENSYM) GetSym();
else Error(16);
CX1=CX; GEN(JPC,0,0);
STATEMENT(SymSetUnion(SymSetNew(ELSESYM),FSYS),LEV,TX);
if ( SYM!=ELSESYM ) CODE[CX1].A=CX;
else {
CX2=CX; GEN(JMP,0,0);
CODE[C
文档评论(0)