编译原理第4章.doc

上传人:1595****071 文档编号:33801493 上传时间:2022-08-12 格式:DOC 页数:9 大小:56.50KB
返回 下载 相关 举报
编译原理第4章.doc_第1页
第1页 / 共9页
编译原理第4章.doc_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《编译原理第4章.doc》由会员分享,可在线阅读,更多相关《编译原理第4章.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、_第四章作业4.1 对下面文法,设计递归下降分析程序。SaAS|(A) , AAb|c解:将左递归去掉,将规则AAb|c 改成 Acb非终结符号S的分析程序如下:SINPUTSYM=aINPUTSYM=(INPUTSYM=下一个符号AINPUTSYM=下一个符号AINPUTSYM=)SINPUTSYM=下一个符号错误错误出口NNNYYY非终结符号A的分析程序如下:过程A INPUTSYM=cINPUTSYM=下一个符号YINPUTSYM=bN错误INPUTSYM=下一个符号Y出口N4.2 设有文法GZ: Z=(A) , A=a|Bb , B=Aab若采用递归下降分析方法,对此文法来说,在分析过

2、程中,能否避免回溯?为什么?解:若采用递归下降分析方法,对此文法来说,在分析过程中,不能避免回朔。因为A=a|Bb和B=Aab构成了间接的左递归,不满足实现没有回溯的递归下降分析方法的条件,因此在分析过程中,将造成回溯。4.3 若有文法如下,设计递归下降分析程序。 | ID= | |*|/ ID|NUM|()解:首先,去掉左递归(1)|改为: (3) | + | - 改为:(+ | -)(4) | * | / 改为:(* | /)则文法变为: ID= (+ | -) (* | /) ID|NUM|()非终结符号 的分析程序如下:语句INPUTSYM=IDNY赋值语句出口非终结符号 ID= 的分

3、析程序如下:赋值语句INPUTSYM=ID错误NINPUTSYM=下一个符号INPUTSYM=错误NINPUTSYM=下一个符号Y表达式出口非终结符号(+ | -) 的分析程序如下:表达式INPUTSYM=+NINPUTSYM=-INPUTSYM=下一个符号Y出口项NY非终结符号 (* | /) 的分析程序如下:复值语句的分析程序项INPUTSYM=*NINPUTSYM=/INPUTSYM=下一个符号Y出口因子NY项非终结符号 ID|NUM|() 的分析程序如下:NNYYY因子INPUTSYM=IDINPUTSYM=(INPUTSYM=下一个符号出口INPUTSYM=下一个符号表达式INPUT

4、SYM=(错误出口INPUTSYM=(NY4.4 有文法GA:A:=aABe|,B:=Bb|b(1)求每个非终结符号的FOLLOW集。(2)该文法是LL(1)文法吗?(3)构造LL(1)分析表。解:(1) FOLLOW(A)=First(B)#=b,# FOLLOW(B)=e,b(2) B:=Bb|b为左递归,因此该文法不是LL(1)文法;(3) 先将B:=Bb|b转成右递归,文法变为:A:=aABe|,B:=bB,B=bB|,因此该文法的LL(1)分析表为:aeb#APOP ,PUSH(eBAa)POPPOPBPOP ,PUSH(Bb)BPOPPOP ,PUSH(Bb)4.5 若有文法A(A)A|(1)为非终结符A构造FIRST集合和FOLLOW集合。(2)说明该文法是LL(1)的文法。解:(1)FIRST(A)(, FOLLOW(A),#(2)因为该文法中不含左递归;FIRST((A)A)=(,FIRST()=,FIRST((A)A)FIRST()=,并且FOLLOW(A),#,FIRST((A)A) FOLLOW(A) =,故该文法满足LL(1)文法的条件,因此是LL(1)文法。9_

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

当前位置:首页 > 教育专区 > 小学资料

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

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