77范文网 - 专业文章范例文档资料分享平台

计算机编译原理课后习题及答案详细解析(4)

来源:网络收集 时间:2019-05-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

而对正规式(2)可画NFA图,如图所示。

X12 12 12Y a 12 12 12 b 12Y 12Y 12Y 可化简得下表 1 2 a 2 2 b 3 3 得DFA图

两图完全一样,故两个自动机完全一样,所以两个正规文法等价。 对相应正规文法,令故为: A->aA|bB|b B->aA|bB|b

即为S->aS|bS|B,此即为所求正规文法。

A对应1,B对应2

四 1.文法

S->a|^|(T) T->T,S|S

(1) 对(a,(a,a)和(((a,a),^,(a)),a)的最左推导。

(2)对文法G改写,然后对每个非终结符写出不带回溯的递归子程序。 (3)经改写后的文法是否为LL(1)的?给出它的预测分析表。 (4)给出输入串(a,a)#的分析过程,并说明该串是否为G的句子。

[答案]

(1) 对(a,(a,a)的最左推导为: S=>(T) =>(T,S) =>(S,S) =>(a,S) =>(a,(T)) =>(a,(T,S)) =>(a,(S,S)) =>(a,(a,S)) =>(a,(a,a))

对(((a,a),^,(a)),a) 的最左推导为: S=>(T) =>(T,S) =>(S,S) =>((T),S) =>((T,S),S) =>((T,S,S),S) =>((S,S,S),S) =>(((T),S,S),S) =>(((T,S),S,S),S) =>(((S,S),S,S),S) =>(((a,S),S,S),S) =>(((a,a),S,S),S) =>(((a,a),^,S),S) =>(((a,a),^,(T)),S) =>(((a,a),^,(S)),S) =>(((a,a),^,(a)),S) =>(((a,a),^,(a)),a) (3)改写文法为: 0) S->a 1) S->^

2) S->( T ) 3) T->S N2 4) N2->, S N2 5) N2->ε

对左部为N2的产生式可知:

FIRST (->, S N2)={,} FIRST (->ε)={ε} FOLLOW N2)={)}(

{,}∩ {)}=? 所以文法是LL(1)的。

可见输入串(a,a)#是文法的句子。

2.已知文法G[A]如下,试用类C或类PASCAL语言写出其递归下降子程序.(主程序不需写) G[A]: A→[B B→X]{A} X→(a|b){a|b} [答案]

不妨约定:在进入一个非终结符号相应的子程序前,已读到一个单词.word:存放当前读到的单词,Getsym()为一子程序,每调用一次,完成读取一单词的工作。error()为出错处理程序.FIRST(A)为终结符A的FIRST集. 类C程序如下:

3.文法:

S->MH|a H->LSo|ε K->dML|ε L->eHf M->K|bLM 判断G是否为LL(1)文法,如果是,构造LL(1)分析表。 [答案]

源文法G展开为: 0) S->M H 1) S->a

2) H->L S o 3) H->ε 4) K->d M L 5) K->ε 6) L->e H f 7) M->K

8) M->b L M

由预测分析表中无多重入口判定文法是LL(1)的。 4.设有文法G[A]的产生式集为:

A→BaC|CbB B→Ac|c C→Bb|b 试消除G[A]的左递归。 [答案]

提示:不妨以A、B、C排序.先将A代入B中,然后消除B中左递归;再将A、B代入C中。再消除C中左递归。 最后结果为:G[A]:

A→BaC|CbB B→CbBcB'|cB' B'→aCcB'|ε C→cB'bC'|bC' C'→bBcB'bC'|ε

1、对于文法S ? ( L ) | a L ? L, S | S

(1)给出句子(a, ((a, a), (a, a)))的一个最右推导,并指出右句型的句柄; (2)按照(1)的最右推导,说明移进-归约分析器的工作步骤。 [答案]

(1)S => ( L ) => (L, S) => (L, (L)) => (L, (L, S)) => (L, (L, (L))) => (L, (L, (L, S)))=> (L, (L, (L, a))) => (L, (L, (S, a))) => (L, (L, (a, a))) => (L, (S, (a, a)))=> (L, ((L), (a, a))) => (L, ((L, S), (a, a))) => (L, ((L, a), (a, a))) => (L, ((S, a), (a, a))) => (L, ((a, a), (a, a))) => (S, ((a, a), (a, a))) => (a, ((a, a), (a, a))) (注:句柄下面有下划线) (2)

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机编译原理课后习题及答案详细解析(4)在线全文阅读。

计算机编译原理课后习题及答案详细解析(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/642217.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: