- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 最左推导在语法树中的表现主要是:总是沿最左分支替换到底,再是次左边…… * * * * * 语言的设计与软件系统的设计类似 * * * * * * * UVaa00,aa11,bb00,bb11 * * * * * * * * * * * * * * * * * * * * * * * * * * 例:有如下两个文法,判断它们是否等价?G1(S,0,S,S?0S,S?0)G2(S,0,S,S?S0,S?0) S?0 S?0S?00 …………… S?0S ?00S?… ?000……0 LG1 0n | n≥1 对于G2: 对于G1 : S?S0 ? S00?… ?000……0 LG2 0n | n≥1 G1?G2,但LG1 LG2,文法G1和G2等价 例3 : G E, i, +, *, , , P , EP: E ? E + E | E * E | E | i 表达式 i+i*i的推导过程:1 E ? E*E ? E*E ? E + E*E ? i + E*Ei + i*E ? i + i*i 2 E ? E*E ? E*i ? E* i ? E + E*iE+ i*i ?i + i*i 对给定的文法,定义的语言是由利用所有的产生式经过各种方式推导出所有可能的句子构成的,并没有规定推导使用产生式的顺序。 因此从一个句型到另一个句型句子的推导过程不是唯一的。 最左推导: 在整个推导过程中,任何一步推导αβ都是对α中最左边的非终结符进行替换。 最右推导: 在推导之前确定推导的顺序,是对句子进行确定性分析所必须的 例3: G E, i, +, *, , , P , EP: E ? E + E | E * E | E | i i+i*i的最左推导过程: E ? E*E ? E*E ? E + E*E ? i + E*E ?i + i*E ? i + i*i 最右推导过程: E ? E*E ? E*i ? E + E*i ? E+ i*i ?i + i*i 文法的二义性 语法树:推导的形式化表示,有助于理解句子语法结构的层次 每个结点都有一个标记,该标记属字母集中的一个符号,根由开始符号S标记。 当某个非终结符被它的某个候选式所替换时,就产生相应的下一层的结点,候选式中自左至右的每个符号对应一个新的结点,并标记它,画出其与父结点之间的连线。 例:对文法G E, i, +, *, , , P , EP: E ? E + E | E * E | E | i句子i+i*i 的语法树: 在语法树的推导过程中的任何时刻,没有后代的端末结点自左至右排列起来就是一个句型 一棵语法树表示了一个句型很多可能的不同推导过程。包括最左推导和最右推导 例3: G E, i, +, *, , , P , EP: E ? E + E | E * E | E | i 句子 i * i + i的语法树: 1 E ? E+E ? E*E+E ? i*E+E ? i*i+E ? i*i+i 2 E ? E*E ? i*E ? i*E+E ? i*i+E ? i*i+i 并不是任何情况下一个句型就唯一地对应一棵语法树。 定义:如果一个文法存在某个句子对应两棵不同的语法树,则说这个文法是二义的 对二义文法中的某个句子的分析不是唯一的,因此总是希望文法是无二义的。 但是二义文法有时也是有用的。 证明下述文法是二义文法。 例:设if语句S的文法GE,S,if,then,else,a,e,P,S,其中P为:S?if E then S(1) S?if E then S else S(2) S?a(3) E?e(4) 推导1:S ? if E then S ? if E then if E then S else S 推导2:S ? if E then S else S ? if E then if E then S else S 文法的分类 文法有四种:设有GVn,Vt,P,S,不同类型的文法只是对产生式的要求不同: 0型文法短文文法: G的每个产生式α?β满足:α∈V+且α中至少含有一个非终结符,β∈V* 1型文法上下文有关文法:如果G的每个产生式α? β均满足|β||α|,仅当S?ε除外,但S不得出现在任何产生式的右部 2型文法上下文无关文法:G的每个产生式为A?β, A是一非终结符,β∈V* 3型文法正规文法:G的每个产生式的形式都是:A?αB或A?α,其中A,B是非终结符,α是终结符串。右线性文法 语言的层次 这四种语言可被4种自动机识别: 0型——图灵机1型——线性界限自动机 2型——下推自动机3型——有穷自动机 从外到内,四种文法对产生式的限制越来越
文档评论(0)