LR(0)文法分析.docx
《LR(0)文法分析.docx》由会员分享,可在线阅读,更多相关《LR(0)文法分析.docx(16页珍藏版)》请在优知文库上搜索。
1、试验名称:1.R(O)文法分析一、试验目的:输入:随意的压缩了的上下文无关文法。输出:相应的1.R(0)分析表。二、试验原理:对于1.R文法,我们可以自动构造相应的1.R分析表。为了构造1.R分析表,我们须要定义一个重要概念一一文法的标准句型“活前缀”。这种句柄之后不含任何符号的前缀称为活前缀。在1.R分析工作过程中的任何时候,栈里的文法符号(自栈底而上)XiX:Xm应当构成活前缓,把输入串的剩余同部配上之后即应成为标准句型(假如整个输入串的确构成一个句子)。因此,只要输入串的已扫描局部保持可归约成一个活前缀,那就意味着所扫描过的局部没有错误。对丁-一个文法G我们可以构造一个有限自动机,它能识
2、别G的全部活前缀,然后把这个自动机转变成1.R分析表,依据该1.R分析表进展1.R分析,就能保证在分析的过程中,假如分析的句子是正确的,栈里的文法符号(自栈底而上)始终构成活前缀。假假设一个文法G的拓广文法G的活前缀识别自动机中的每个状态(工程集)不存在下述状况:(I)既含移进工程又含归约工程;(2)含有多个归约工程,那么称G是一个1.R(0)文法。该自动机的状态集合即为该文法的1.R(0)工程集标准族。构造识别文法活前缀DFA有3种方法:(1)依据形式定义求出活前缀的正那么表达式,然后由此正那么表达式构造NFA再确定为DFA;(2)求出文法的全部工程,按肯定规那么构造识别活前缀的NFA再确定
3、化为DFA:运用闭包函数(C1.OSURE)和转向函数(Go(I,X)构造文法G的1.R(O)的工程集标准族,再由转换函数建立状态之间的连接关系来得到识别活前缀的DFA。符号出的前缀是指该符号串的随意首部,包括空申”例如,对符号串abc.其前缀有,a,ab,aba假如输入率没有错误的话,一个标准句型的活前缀是该句型的一个前缀,但它不含句柄之后的任何符号。之所以称为活前缀,是因为在该前缀后联接尚未输入的符号串可以构成个标准句型。活前皴与句柄的关系如下:(I)活前缀已含有句柄的全部符号,说明产生式AB的右部S已出现在栈顶。(2)活前缀只含句柄的局部符号,说明A-BiB2的右部子串已出现在栈顶,期盼
4、从输入申中看到B2推出的符号。13)活前缀不含有句柄的任何符号,此时期望ATB的右部所推出的符号串在文法G的每个产生式的右部(候选式)的任何位置上添加一个侧点,所构成的每个产生式称为1.R(0)工程。如产生大Axyz有如下工程:A.xyz,At,A,ATXyZ.为刻划分析过程中的文法的每一个产生式的右部符号已有多大一局部被识别(出现在栈顶),可以用这种标有网点的产生式来踊定。A-.刻划产生式Af的右部已出现在栈顶。(2) AfB1.B2刻划A-IBz的右部子申I己出现在栈顶,期盼从输入出中看到B2推出的符号。(3) A-.B刻划没有句柄的任何符号在栈顶,此时期望A-B的右部所推出的符号串。(4
5、)对FAfC的1.R(O)工程只有A-.设文法G=(V,Vn,S,P)是一个上下文无关文法,假设存在一个标准推导SgaAWmaPIP2w(其中A-2wP),那么称工程A-02对活前缀=al是有晟的,即1.R(O)有效工程。从直观意义上讲,一个1.R(O)工程指明白在分析过程中的某一步我们看到产生式的多大局部被识别,1.R(O)工程中的圆点可看成是分析栈栈顶与输入串的分界限,圆点左边为已进入分析栈的同部,右边是当前输入或接若扫描的符号串.不同的1.R(O)工程,反映了分析栈顶的不同状况,我们依据1.R(O)工程的作用不同,将其分为四类:(1)归约工程:表现形苴:A-*a.这类1.R(O)工程表示
6、句柄a恰好包含在栈中,即当前栈顶的同部内容构成了所期望的句柄,应按A-a进展归约。(2)承受工程:表现形式:Sfa.其中S是文法惟一的开场符号。这类1.R(O)工程实际是特别的归约工程,表示分析栈中内容恰好为a,用Sfa进展归约,那么整个分析胜利。移进工程:表现形式:A-*a.?(beVr)这类1.R(O)工程表示分析栈中是不完全包含句柄的活前皴,为构成恰好有句柄的活前级,需将b移进分析栈。(4)待约工程:表现形式:-.B(BWVN)这类1.R(O)工程表示分析栈中是不完全包含句柄的活前缀,为构成恰好有句柄的活前级,应把当前输入字符串中的相应内容先归约到B,在给出1.R(O)工程的定义和分类之
7、后,我们从这些1.R(O)工程动身,来构造能识别文法全部前缀的有限自动机.其步骤是:首先构造能识别文法全部活前缀的非确定的有限自动机,再将其确定化和最小化,最终得到所需的确定的有限自动机。由文法G的1.R工程构造识别文法G的全部活前缀的非确定有限自动机的方法:(1)规定含有文法开场符号的产生式(设S*A)的第一个1.R(O)工程(即S-A)为NFA的惟一初态。(2)令全部1.R(0)工程分别对应NFA的个状态II1.R(O)工程为归约工程的对应状态为终态.(3)假设状态i和状态j出自同一文法G的产生式且两个状态1.R(O)工程的圆点只相差一个位置,即:假设i为X-XiXz-XmX-Xn,j为X
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LR 文法 分析