从栈顶删除该符号。然后再把相应的规则逆向压入栈顶,替换原栈顶的非终结符。分析表的构造分析表它是用来反映分析栈中的元素与输入串中元素的种匹配关系。如果分析栈中的元素为集保存到二维数组中最后对集做相关判断,以确定所读入的文法是否符合文法的规则。程序中所用到的公有数据成员有文法的行数终结符的个数非终结符的个数,集用与临时存放集中元素的数组终结符集非终结符集求集设有文法,并有规则,则该规则的可选集为同时从识别符号开始生成句子的最左推导规范推导,向前看个符号,便能确定当前应选择怎样的规则。当时,既是分析方法。分析方法方法的思想根据输入串的当前输入符号,确定用规保护在栈顶中的工作单元的原来内容,并上退保护栈取保护在栈顶中的返回地址进行返回,并退保护栈。分析方法分析方法是种自顶向下的分析技术。这种分析方法从左到右扫描源程序输入串,应的递归子程序中需要保护的工作单元。递归子程序调用时,入口与出口的工作递归入口工作当前返回地址送保护栈递归子程序中调用程序不允许被破坏的工作单元内容送保护栈。递归出口工作恢复单元数目不明确,般采用堆栈形式。方法是在内存中开辟个保护栈,每次进入递归子程序时,就把当前返回地址送入保护栈,相应地,每次退出递归子程序时,就取栈顶的返回地址作为其返回地址。同时入栈和出栈的还有相简单子程序,嵌套子程序,递归子程序。三种子程序的返回地址保护方法所有简单子程序可以公用个返回地址保护单元。嵌套子程序各自有各自的返回地址保护单元,不得随意公用。对于递归子程序,由于返回地址保护序方法这里讲的递归子程序方法是种自顶向下的编译方法,其思想是通过对源程序的每个语法成分编制个处理子程序,通过子程序调用来对源程序进行语法和语义分析。递归子程序及其调用常用的子程序的种类有种,采用试探法即从首字符中有输入符号的多个候选式中任选个来试探,如果不成功,就换另个接着试。试探法有可能形成回溯现象。对于回溯现象,可以通过左提因子方法对文法进行修改来消除。递归子程序递归子程首符号相同的解决办法对于文法,有„,若有∩符号为,若其句子中对应的下个符号当前输入符号为,且有,则选择规则来作为推导的候选式。例设有文法,和句子理方法首符号集不相同的解决办法对于文法,有„,其右部的个候选式的首符号集均不相同即∩,对于待分析的符号串,如果最左的非终结每个规则求可选集。当时,则对于当前输入的符号,若有,则可以选用规则进行推导。若对于非终止符号有条规则即有个候选式的处形如„的规则,可能需要对所有的规则都要试探。难点的解决办法该解决办法是把文法中每个非终结符号的右部称为的候选式,对候选式的选择,则根据当前输入符号来决定。方法首先对文法的识别。例设有文法和符号串„根据文法有因此我们说符合此文法图过程分析自顶向下分析的难点及解决办法自顶向下分析的难点对于别,表明其结构符合文法,如果经过各种推导都不能得到所分析的句子,则该符号串不符合文法。或者说,从根结点出发,自上而下地建立颗语法树,其未端结点按从左到右的顺序连接起来,构成给定的符号串,则符号串得到,则称该文法为文法。算法简介自顶向下分析对于文法,给顶个待分析的句子字符串,自顶向下分析的基本思想是从识别符号开始,根据文法试着建立个推导序列,若得到所给的句子,则句子得到识型如的规则称为直接左递归规则。集首符号集。集向前看集。集可选集。文法对于文法,其每个非终结符的不同规则具有不相交的集,型如的规则称为直接左递归规则。集首符号集。集向前看集。集可选集。文法对于文法,其每个非终结符的不同规则具有不相交的集,则称该文法为文法。算法简介自顶向下分析对于文法,给顶个待分析的句子字符串,自顶向下分析的基本思想是从识别符号开始,根据文法试着建立个推导序列,若得到所给的句子,则句子得到识别,表明其结构符合文法,如果经过各种推导都不能得到所分析的句子,则该符号串不符合文法。或者说,从根结点出发,自上而下地建立颗语法树,其未端结点按从左到右的顺序连接起来,构成给定的符号串,则符号串得到识别。例设有文法和符号串„根据文法有因此我们说符合此文法图过程分析自顶向下分析的难点及解决办法自顶向下分析的难点对于形如„的规则,可能需要对所有的规则都要试探。难点的解决办法该解决办法是把文法中每个非终结符号的右部称为的候选式,对候选式的选择,则根据当前输入符号来决定。方法首先对文法的每个规则求可选集。当时,则对于当前输入的符号,若有,则可以选用规则进行推导。若对于非终止符号有条规则即有个候选式的处理方法首符号集不相同的解决办法对于文法,有„,其右部的个候选式的首符号集均不相同即∩,对于待分析的符号串,如果最左的非终结符号为,若其句子中对应的下个符号当前输入符号为,且有,则选择规则来作为推导的候选式。例设有文法,和句子首符号相同的解决办法对于文法,有„,若有∩,采用试探法即从首字符中有输入符号的多个候选式中任选个来试探,如果不成功,就换另个接着试。试探法有可能形成回溯现象。对于回溯现象,可以通过左提因子方法对文法进行修改来消除。递归子程序递归子程序方法这里讲的递归子程序方法是种自顶向下的编译方法,其思想是通过对源程序的每个语法成分编制个处理子程序,通过子程序调用来对源程序进行语法和语义分析。递归子程序及其调用常用的子程序的种类有种简单子程序,嵌套子程序,递归子程序。三种子程序的返回地址保护方法所有简单子程序可以公用个返回地址保护单元。嵌套子程序各自有各自的返回地址保护单元,不得随意公用。对于递归子程序,由于返回地址保护单元数目不明确,般采用堆栈形式。方法是在内存中开辟个保护栈,每次进入递归子程序时,就把当前返回地址送入保护栈,相应地,每次退出递归子程序时,就取栈顶的返回地址作为其返回地址。同时入栈和出栈的还有相应的递归子程序中需要保护的工作单元。递归子程序调用时,入口与出口的工作递归入口工作当前返回地址送保护栈递归子程序中调用程序不允许被破坏的工作单元内容送保护栈。递归出口工作恢复保护在栈顶中的工作单元的原来内容,并上退保护栈取保护在栈顶中的返回地址进行返回,并退保护栈。分析方法分析方法是种自顶向下的分析技术。这种分析方法从左到右扫描源程序输入串,同时从识别符号开始生成句子的最左推导规范推导,向前看个符号,便能确定当前应选择怎样的规则。当时,既是分析方法。分析方法方法的思想根据输入串的当前输入符号,确定用规则进行推导,当推导的第个符号与输入串的当前符号匹配时,就把输入串的下个字符作为当前输入字符,直到推导出输入串。根据输入串向前的个符号来确定推导规则时,就是方法。分析方法的逻辑结构图分析方法的逻辑结构分析表分析表是分析方法的核心,它确定了推导所使用的规则。分析过程假设分析过程中当前句型的右端部分为„,输入流待分析串的右端部分为„,此时有以下种情况当,则根据当前输入符号选择相应的规则去替换当时,则查看与是否相同,若与相同,则分别删去和,然后继续向前分析不相同表示不相配,为出错。若上述两个字符串均为空,则表示全部匹配,输入串被识别。现在我们把句型的右端部分逆向放入分析堆栈中,使成为栈顶,利用控制器分析表分析栈,当栈顶符号与输入串当前符号相匹配时,则从栈顶删除该符号。然后再把相应的规则逆向压入栈顶,替换原栈顶的非终结符。分析表的构造分析表它是用来反映分析栈中的元素与输入串中元素的种匹配关系。如果分析栈中的元素为集保存到二维数组中最后对集做相关判断,以确定所读入的文法是否符合文法的规则。程序中所用到的公有数据成员有文法的行数终结符的个数非终结符的个数,集用与临时存放集中元素的数组终结符集非终结符集求集设有文法,并有规则,则该规则的可选集为具体实现代码如下,为空当不为空当εε为空字符串求集首符号集既求解文法每条规则右边的第个符号并且必须是终结符,因为文法使用数组存放,所以既求文法每行规则的第个字符既可如果规则左边第个字符为非终结符,则通过循环对该非终结符再求首符号集。,判断第条规则右边的首符号是否是终结符判断,在中是否已经存在求集求向前看集主要分两种情况,种是可以直接循环推导出终结符第二种是推出的还是非终结符的,如果推出的还是非终结符的就循环对该非终结符再求向前看集第三种情况是不能对该非终结符求向前看集,但是可以通过对该非终结符推导出的第二个非终结符求向前看集的方法求出终结符。判断是不是对文法起始符求集判断,在中是否已经存在判断,是不是终结符,判断,在中是否已经存在查找,对应的非终结符在文法的第几行,分析表构造模块在已经得到文法集的前提下,以次为依据,对文法的三种类型的规则型型ε型分别构造分析表,并用个三维数组保存。形如,其中,表示分析表的第行,表示第列,表示第行第列所对应的格子中的第个数据。构造文法分析表在求解集完成后,结果按照非终结符放入分析表轴,没有出现在对应规则右部首部的终结符放入分析表轴,终结符放入分析表轴等规则放置。
温馨提示:手指轻点页面,可唤醒全屏阅读模式,左右滑动可以翻页。
第 1 页 / 共 32 页
第 2 页 / 共 32 页
第 3 页 / 共 32 页
第 4 页 / 共 32 页
第 5 页 / 共 32 页
第 6 页 / 共 32 页
第 7 页 / 共 32 页
第 8 页 / 共 32 页
第 9 页 / 共 32 页
第 10 页 / 共 32 页
第 11 页 / 共 32 页
第 12 页 / 共 32 页
第 13 页 / 共 32 页
第 14 页 / 共 32 页
第 15 页 / 共 32 页
预览结束,还剩
17 页未读
阅读全文需用电脑访问
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。
1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。
2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。
3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。
4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。
5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。