编译原理课后习题答案(清华大学_张素琴)复习例题

编译原理复习例题(有些内容没有覆盖,比如优化、SLR(1)、LR(1)、LALR(1)

等。但要求至少要按照作业题的范围复习。)

一 选择题

1.编译的各阶段工作都涉及 。

[A]词法分析 [B]表格管理 [C]语法分析 [D]语义分析 2. 型文法也称为正规文法。

[A] 0 [B] 1 [C] 2 [D] 3 3. 文法不是LL(1)的。

[A]递归 [B]右递归 [C]2型 [D]含有公共左因子的 4.文法E→E+E|E*E|i的句子i*i+i*i有 棵不同的语法树。

[A] 1 [B] 3 [C] 5 [D] 7 5.文法 S→aaS|abc 定义的语言是 。 [A]{a2kbc|k>0} [C]{a2k-1bc|k>0}

[B]{akbc|k>0} [D]{akakbc|k>0}

6.若B为非终结符,则 A→?.B? 为 。

[A]移进项目 [B]归约项目 [C]接受项目 [D]待约项目 7.同心集合并可能会产生新的 冲突。

[A]二义 [B]移进/移进 [C]移进/归约 [D]归约/归约 8.代码优化时所依据的是 。 [A]语法规则 [B]词法规则 [C]等价变换规则 [D]语义规则

9.表达式a-(-b)*c的逆波兰表示(@为单目减)为 。 [A]a-b@c* [B]ab@c*- [C]ab@- [D]ab@c-* 10.过程的DISPLAY表是用于存取过程的 。

[A]非局部变量 [B]嵌套层次 [C]返回地址 [D]入口地址

- 1 -

二 填空题

1.词法分析阶段的任务式从左到右扫描 字符流 ,从而逐个识别 一个个的单词 。

2.对于文法G[E]:E→T|E+T T→F|T*F F→P^F|P P→(E)|i,句型T+T*F+i的句柄是 。 3.最右推导的逆过程称为 规范归约 ,也称为 最

左归约 。

4.符号表的每一项是由名字栏和 两个栏目组成。在目标代码生成阶段,符号表是 的依据。

三 判断题(认为正确的填“T”,错的填“F”)

【 】1.同心集的合并有可能产生“归约/归约”冲突。 【 】2.一个文法所有句子的集合构成该文法定义的语言。 【 】3.非终结符可以有综合属性,但不能有继承属性。 【 】4.逆波兰表示法表示表达式时无需使用括号。 【 】5.一个有穷自动机有且只有一个终态。

【 】6.若过程p第k次被调用,则p的DISPLAY表中就有

k+1个元素。

四 解答题

1.给定文法G和句型(T+F)*i+T,

G: E→E+T | T T→T*F | F F→(E) | i (1)画出句型的语法树;

(2)写出句型的全部短语、简单短语和句柄。 解:(略)

2.设有文法G:S→S+S|S*S|i|(S)。

(1)对于输入串i+i*i 给出一个最左推导;

(2)该文法是否是二义性文法?请证明你的结论。 解:(1)i+i*i的最左推导:

S => S+S => i+S => i+S*S => i+i*S => i+i*i

(2)该文法是二义性的。因为对于句子i+i*i可以画出两棵

语法树(语法树略

>>闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧湱鈧懓瀚崳纾嬨亹閹烘垹鍊炲銈嗗笒椤︿即寮查鍫熷仭婵犲﹤鍟扮粻缁橆殽閻愭潙鐏村┑顔瑰亾闂侀潧鐗嗛幊鎰邦敊婵犲倵鏀介幒鎶藉磹閹版澘纾婚柟鎯у濡垶鏌熼鍡楃灱閸氬姊洪崫鍕効缂傚秳绶氶悰顕€宕堕澶嬫櫖闂佹寧绻傚Λ宀勫箰閸涱喚绡€闁汇垽娼ф禒婊勪繆椤栨熬鏀荤紒鍌氱Т楗即宕煎┑鍫О闂備線鈧偛鑻晶顔姐亜椤忓嫬鏆e┑鈥崇埣瀹曞崬螖閳ь剝銆栫紓鍌氬€搁崐鍝ョ矓閺夋嚦娑樜旈埀顒勬偝婵犳艾閿ゆ俊銈勭娴滄粓姊虹粙璺ㄧ闁汇劎鍏橀獮蹇涙惞閸︻厾锛滅紓鍌欓檷閸ㄥ綊鐛弽顓熺厵闁告劘灏欑粻娲煏閸ャ劌濮屾い锕€顕槐鎺撴綇閵娿儲璇為梺璇″枓閺呯姴鐣峰鈧幊鐘活敄閹稿骸浜濈紓鍌氬€搁崐椋庢閿熺姴绐楅柡宥庡幗閸嬪鏌熼幆褏锛嶉柡鍡畵閺岀喖鎮滃鍡樼暦闂佺ǹ锕﹂崗姗€骞冨Δ鍛仺闁谎嗩嚙濠€閬嶅极椤曗偓楠炲棜顦柡鈧禒瀣厽婵☆垵娅f禒娑㈡煛閸″繑娅呴柍瑙勫灴椤㈡瑧鍠婇崡鐐搭啀闂備胶鎳撶粻宥夊垂绾懐浜藉┑鐐存尰閸戝綊宕归幎钘夌劦妞ゆ帒鍟悡鎰版煏閸パ冾伃鐎殿喗娼欒灃闁逞屽墯缁傚秵銈i崘鈹炬嫼闂佸憡绻傜€氼噣鎮炵捄銊х<闁哄被鍎抽悾鐑橆殽閻愬弶顥㈢€殿噮鍣e畷濂割敃閿濆棙鐝┑鐘垫暩閸嬬偤宕归崼鏇熸櫇闁冲搫鍊搁閬嶆煥閻曞倹瀚�<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4