- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《编译原理实践及应用》第4章自上而下语法分析
* * * * * * * * * * * * * * * * * * * * * * * * * * 根据语法结构来编写函数。语法结构用文法规则给定。 * 不存在直接左递归,但S=Qc=Rbc=Sabc, 因此该文法是一个间接左递归 * * * * * * * * * * * * * * * * 这是下一节课的内容 ————LL(1)文法。 * 文法G1的特点: 每个产生式的右部都由终结符号开始 如果两个产生式的左部相同,则它们的右部由不同的终结符号开始 显然,G1在推导过程中可以根据当前的输入符号唯一地选择哪个产生式继续推导 * 文法G2的特点: 每个产生式的右部不全是由终结符号开始 如果两个产生式的左部相同,则它们的右部由不同的终结符号或非终结符号开始 文法中没有ε产生式 虽然不象G1那样直观,G2在推导过程中仍然可以根据当前的输入符号唯一地选择哪个产生式继续推导 * 并不是在任何情况下,A面对输入符号a, a不属于A的任何侯选式,但A中含ε产生式时都可以使用ε自动匹配。 * 若a是允许在文法的某个句型中跟在A后面的终结符时,才可能允许A自动匹配,否则是错误。 * * * * * * * * * 并不是在任何情况下,A面对输入符号a, a不属于A的任何侯选式,但A中含ε产生式时都可以使用ε自动匹配。 * 补充LL(1)的含义 * 分析表M: 是一个从VN?(VT?{#})到产生式的映射。在分析时遇到A和a时,应该选择M[A,a]中存放的产生式。如果M[A,a]为空,表示出现语法错误。 分析表格式: i + * ( ) # E ?TE ?TE E ?+TE ? ? ?? T ?FT ?FT T ? ? ?*FT ? ? ?? F ?i ?(E) 第1列为非终结符 第1行为终结符+’#’ 每个元素为产生式或空 E ?TEE ? +TE |εT ? FTT ? *FT |εF ?(E) |i 总控程序: 将’#’压入堆栈中,将开始符号S压入堆栈中 读取第一个输入符号到a; 循环执行下述操作: 栈顶符号弹出放入X中; 如果X为终结符号: 如果X == a != ‘#’,表明成功匹配a符号; 读取下一个符号到a,否则出错; 如果X == ‘#’ 如果X == a ,分析结束,接受句子。 如果 X!= a ,出错处理。 如果X为非终结符号, 则查分析表M: 如果M[X,a]为空,出错处理。 如果M[X,a]=‘X1 X2…Xn ’, 则: 将右部Xn …X2 X1反序压入堆栈中。 预测分析过程 下面用预测分析方法对输入串i+i*i # 进行分析,给出栈的变化过程如下: 1 #E i+i*i# E?TE? 2 #E?T i+i*i# T?FT ? 3 #E?T?F i+i*i# F?i 4 #E?T?i i+i*i# i匹配 5 #E?T? +i*i# T??ε 6 #E? +i*i# E??+TE? 7 #E?T+ +i*i# +匹配 步骤 分析栈 剩余输入串 所用产生式 8 #E?T i*i# T?FT 9 #E?T?F i*i# F ? i 10 #E?T?i i*i# i匹配 11 #E?T? *i# T? ? *FT? 12 #E?T?F* *i# *匹配 13 #E?T?F i# F ? i 14 #E?T?i i# i匹配 15 #E?T? # T? ? ε 16 #E? # E? ? ε 17 # # 接受 构造预测分析表 预测分析过程的总控程序是固定的。对于某个文法,分析表是分析过程的核心。 表中M[A,a]= ?A→X1X2…Xn ?表示对应于X1X2…Xn字的首终结符可以是a。就是说X1X2…Xn=aw。可以通过这个方式来确定分析表中的值。(即:求首终结符) * 预测分析表的构造算法 对文法的每个文法符号X构造First(X) 对于每一产生式 A→α, 对于终结符a∈First(α),将A→α填入 M[A,a]; 如果ε∈First(A→α),则构造Follow(A),对任何元素 b∈Follow(A),将A→α填入M[A,b]; 将所有无定义的 M[A,a] 标上错误标志。 如果文法是LL(1)文法,其预测分析表中没有多重定义的元素,可以进行确定的分析。 例:求对应于下述文法的预测分析表: 1.首先求各个候选式的first集 E ?TEE ? +TE |εT ? FTT ? *FT |ε F ?(E) |i First(E?TE) = { ( ,i } First(E?+TE’) = {+} First(E ? ?)= {ε} First(T ?FT) = { ( ,i }First(T ?*FT) = {*} First(T ? ε) = {
您可能关注的文档
最近下载
- 2024年怒江州福贡县义务教育教师专项招聘真题.docx VIP
- 《搭石》第2课时公开课教学课件【部编人教版五年级语文上册】.ppt VIP
- 《海岸工程混凝土结构耐久性技术标准》GBT51464-2024知识培训.pptx VIP
- AQT3034—2022化工过程安全管理导则.pdf VIP
- 巴中市巴州区事业单位考试考试题库2024.docx VIP
- 小学数学新西师版一年级上册全册教案(2024秋).doc
- 2025年秋新教科版三年级上册科学全册精编教案教学设计(新教材).docx
- 《第4单元 花卉盆景技术——水仙盆景的设计与制作课件》初中劳动技术沪科教版七年级课件7216.ppt VIP
- 2025年新教材道德与法治三年级上册第一单元《做学习的主人》教案设计.docx VIP
- 惠普 HP E87640 E87650 E87660 彩色数码复印机中文维修手册.pdf VIP
文档评论(0)