1、“.....采用试探法即从首字符中有输入符号的多个候选式中任选个来试探,如果不成功,就换另个接着试。试探法有可能形成回溯现象。对于回溯现象,可以通过左提因子方法对文法进行修改来消除。递归子程序递归子程序方法这里讲的递归子程序方法是种自顶向下的编译方法,其思想是通过对源或者说,从根结点出发,自上而下地建立颗首符号集。集向前看集。集可选集。文法对于文法,其每个非终结符的不同规则具有不相交的集,则称该文法为文法。算法简介自顶向下分析对于文法,给顶个待分析的句子字符串,自顶向下分析的基本思想是从识别符号开始,根据文法试着建立个推导序列,若得到所给的句子,则句子得到识别,表明其结构符合文法,如果经过开始,根据文法试着建立个推导序列,若得到所给的句子,则句子得到识别,表明其结构符合文法,如果经过各种推导都不能得到所分析的句子,则该符号串不符合文法......”。
2、“.....其每个非终结符的不同规则具有不相交的集,则称该文法为文法。部分内容简介型如的规则称为直接左递归规则。集首符号集。集向前看集。集可选集。文法对于文法,其每个非终结符的不同规则具有不相交的集,则称该文法为文法。算法简介自顶向下分析对于文法,给顶个待分析的句子字符串,自顶向下分析的基本思想是从识别符号开始,根据文法试着建立个推导序列,若得到所给的句子,则句子得到识别,表明其结构符合文法,如果经过各种推导都不能得到所分析的句子,则该符号串不符合文法。或者说,从根结点出发,自上而下地建立颗语法树,其未端结点按从左到右的顺序连接起来,构成给定的符号串,则符号串得到识别。例设有文法和符号串„根据文法有因此我们说符合此文法图过程分析自顶向下分析的难点及解决办法自顶向下分析的难点对于形如„的规则,可能需要对所有的规则都要试探......”。
3、“.....对候选式的选择,则根据当前输入符号来决定。方法首先对文法的每个规则求可选集。当时,则对于当前输入的符号,若有,则可以选用规则进行推导。若对于非终止符号有条规则即有个候选式的处理方法首符号集不相同的解决办法对于文法,有„,其右部的个候选式的首符号集均不相同即∩,对于待分析的符号串,如果最左的非终结符号为,若其句子中对应的下个符号当前输入符号为,且有,则选择规则来作为推导的候选式。例设有文法,和句子首符号相同的解决办法对于文法,有„,若有∩,采用试探法即从首字符中有输入符号的多个候选式中任选个来试探,如果不成功,就换另个接着试。试探法有可能形成回溯现象。对于回溯现象,可以通过左提因子方法对文法进行修改来消除......”。
4、“.....其思想是通过对源程序的每个语法成分编制个处理子程序,通过子程序调用来对源程序进行语法和语义分析。递归子程序及其调用常用的子程序的种类有种简单子程序,嵌套子程序,递归子程序。三种子程序的返回地址保护方法所有简单子程序可以公用个返回地址保护单元。嵌套子程序各自有各自的返回地址保护单元,不得随意公用。对于递归子程序,由于返回地址保护单元数目不明确,般采用堆栈形式。方法是在内存中开辟个保护栈,每次进入递归子程序时,就把当前返回地址送入保护栈,相应地,每次退出递归子程序时,就取栈顶的返回地址作为其返回地址。同时入栈和出栈的还有相应的递归子程序中需要保护的工作单元。递归子程序调用时,入口与出口的工作递归入口工作当前返回地址送保护栈递归子程序中调用程序不允许被破坏的工作单元内容送保护栈......”。
5、“.....并上退保护栈取保护在栈顶中的返回地址进行返回,并退保护栈。分析方法分析方法是种自顶向下的分析技术。这种分析方法从左到右扫描源程序输入串,同时从识别符号开始生成句子的最左推导规范推导,向前看个符号,便能确定当前应选择怎样的规则。当时,既是分析方法。分析方法方法的思想根据输入串的当前输入符号,确定用规则进行推导,当推导的第个符号与输入串的当前符号匹配时,就把输入串的下个字符作为当前输入字符,直到推导出输入串。根据输入串向前的个符号来确定推导规则时,就是方法。分析方法的逻辑结构图分析方法的逻辑结构分析表分析表是分析方法的核心,它确定了推导所使用的规则。分析过程假设分析过程中当前句型的右端部分为„,输入流待分析串的右端部分为„,此时有以下种情况当,则根据当前输入符号选择相应的规则去替换当时,则查看与是否相同,若与相同,则分别删去和......”。
6、“.....为出错。若上述两个字符串均为空,则表示全部匹配,输入串被识别。现在我们把句型的右端部分逆向放入分析堆栈中,使成为栈顶,利用控制器分析表分析栈,当栈顶符号与输入串当前符号相匹配时,则从栈顶删除该符号。然后再把相应的规则逆向压入栈顶,替换原栈顶的非终结符。分析表的构造分析表它是用来反映分析栈中的元素与输入串中元素的种匹配关系。如果分析栈中的元素为集保存到二维数组中最后对集做相关判断,以确定所读入的文法是否符合文法的规则。程序中所用到的公有数据成员有文法的行数终结符的个数非终结符的个数,集用与临时存放集中元素的数组终结符集非终结符集求集设有文法,并有规则,则该规则的可选集为具体实现代码如下,为空当不为空当εε为空字符串求集首符号集既求解文法每条规则右边的第个符号并且必须是终结符......”。
7、“.....所以既求文法每行规则的第个字符既可如果规则左边第个字符为非终结符,则通过循环对该非终结符再求首符号集。,判断第条规则右边的首符号是否是终结符判断,在中是否已经存在求集求向前看集主要分两种情况,种是可以直接循环推导出终结符第二种是推出的还是非终结符的,如果推出的还是非终结符的就循环对该非终结符再求向前看集第三种情况是不能对该非终结符求向前看集,但是可以通过对该非终结符推导出的第二个非终结符求向前看集的方法求出终结符。判断是不是对文法起始符求集判断,在中是否已经存在判断,是不是终结符,判断,在中是否已经存在查找,对应的非终结符在文法的第几行,分析表构造模块在已经得到文法集的前提下,以次为依据,对文法的三种类型的规则型型ε型分别构造分析表,并用个三维数组保存。形如,其中,表示分析表的第行,表示第列,表示第行第列所对应的格子中的第个数据......”。
8、“.....结果按照非终结符放入分析表轴,没有出现在对应规则右部首部的终结符放入分析表轴,终结符放入分析表轴等规则放置。如图。文法分析表终结符非终结符文法可选集未出现在对应规则右部首部的终结符放入分析表轴放入分析表轴放入分析表轴图分析表构造流程规则对于,,则令,表示用的逆串替换后,继续读入下个符号。当为时,即,有,规则对于,,且有„则,,„,表示用的逆串替换后,重读当前符号ε规则对于,且有„,则,句子分析模块本部分主要通过中的对话框读入待分析句子,并与分析表进行对照,逐步分析所输入的句子是否符合文法。分析过程均用维数组进行保存。相关程序片段如下程序中所用到的公有数据成员有存放句子分析过程中的分析栈存放句子分析过程中的输入符号栈读取句子读取句子分析句子现在我们把句型的右端部分逆向放入分析堆栈中......”。
9、“.....利用分析栈,当栈顶符号与输入串当前符号相匹配时,则从栈顶删除该符号。然后再把相应的规则逆向压入栈顶,替换原栈顶的非终结符。ε特殊问题及解决方法在程序的开发过程中,遇到的问题及解决办法如下集的求解问题描述解决方案通过参照编译原理中集和集的具体求解步骤,通过多重循环的嵌套,完成了集的求解过程,具体代码请参照节。解决结果在成功获得集后,对其进行了输出,结果如图所示图显示集为添加水平滚动条问题描述在中,系统提供的只有垂直滚动条,而没有水平滚动条。当控件中行的数据超过的宽度时,数据会显示不完整。添加的水平滚动条的宽度也应该能动态的改变,以最宽的行数据为水平滚动条宽度的依据。解决方案解决结果运行后的结果如图所示图的水平滚动条结果测试在系统开发完成后,对系统各个功能做了详细的测试,对于正确的文法......”。
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。