第2章高级语言及其语法描述案例.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.3程序语言的语法描述 2、二义文法 用若一个文法中存在某个句子,它有两个不同的  最左/右推导,则该文法为二义文法. 例:上述文法G E?E+E|E*E|(E)|i 实质:同一个句子存在两棵语法分析树。 * 2.3程序语言的语法描述 例:句子 i+i*i的最左推导过程 E E E E * E + i i i E E E E + E * i i i 最左推导 E?E+E?i+E  ?i+E*E?i+i*E  ?i+i*i E?E*E?E+E*E  ?i+E*E?i+i*E  ?i+i*i * 2.3程序语言的语法描述 最右推导 E E E E * E + i i i E E E E + E * i i i E?E+E?E+E*E  ?E+E*i?E+i*i  ?i+i*i E?E*E?E*i  ?E+E*i?E+i*i  ?i+i*i * 2.3程序语言的语法描述 注意: A、区分:文法的二义性——语言的二义性   二义文法G≠无二义文法G’  但L(G)=L(G’) 例如:G :E?E+E|E*E|(E)|i G’:E?T|E+T T?F|T*F F?(E)|i ?L(G)=L(G’) * B、二义问题是不可判定的: 即不存在一个算法,它能在有限步骤内,确切的判定 一个文法是否为二义的。 所能做的只是为无二义性寻找一组充分条件 2.3程序语言的语法描述 * 2.3程序语言的语法描述 三、形式语言 G=(VT ,VN ,S ,Ρ) 0型文法: ??? ?? (VN?VT)* ,至少有一个非终结符 任何产生式 ??? 均满足|?|≤ |?|; 仅S??例外,但S不得出现在任何产生式的右部。 1型文法: 短语文法 上下文有关文法 * 2.3程序语言的语法描述 2型文法: A??, A?VN , ??(VN? VT)* G的任何产生式为A??B或 A?? 其中??VT*,A、B ? VN 。 3型文法: G的任何产生式为A ?B ?或 A??, 其中??VT*,A、B ? VN 。 上下文无关文法 正规文法 右线性正规文法 左线性正规文法 * 2.3程序语言的语法描述 例、已知文法G:A?abc A?aBbc Bb?bB Bc?Cbcc bC?Cb aC?aaB aC?aa 定义了一个什么样的语言? * 总结 1、上下文无关文法的概念 2、最左/右推导、语法分析树 3、文法二义性 4、文法的分类 * * * * * * 正确理解程序设计语言中语法和语义的含义,了解书上列举的高级语言中的一般特性。一般情况下,这两点是不会直接考查的,如果是想考查某种高级语言的特性,也会放在后面的优化或目标代码生成章节中进行考查。所以,这里只要求理解及了解。 但是,下面的这些东东就是必须掌握的了,而且是必须通过大量作题掌握的:? 1.上下文无关文法的定义,判断和转化,以及与上下文无关文法密切相关的概念。首先,应该掌握上下文无关文法的四个构成要素;其次,应该清楚对于上下文无关文法,其每个产生式的左部和右部必须满足的条件。 在有关上下文无关文法的考点中,有这样几种考查方式:给出某语言的自然语言描述方式,要求写该语言的上下文无关文法表述形式;给出某语言的上下文无关文法,要求用自然语言描述该语言; 给出某语言的上下文无法方法,要求证明该文法是否二义;给出某语言的上下文无关文法,要求给出指定句子的最左或最右推导;给出某语言的上下文无关文法,要求给出指定句子的语法分析树; 给出一个具有二义性的上下文无关文法,要求将其转换成非二义性的。 以上的综合分析,几乎含盖了所有与上下文无关文法有关的出题角度,大家应该全部掌握。 ? 2.乔姆斯基的文法分类。? 首先,应该非常清楚乔姆斯基对于四种文法分类的定义,并能理解其含义。几种文法中,最基本的是0型文法,可以将它理解为其它所有文法的基础,它是可以表示任何语言的文法。后面的1,2,3三种文法,是分别对于0型文法产生式的两边作了不同的限制之后,形 成了新的文法。比如:规定0型文法的每个产生式中,其左边字符集长度小于右边字符集长度并且同时规定开始符号只可出现于产生式的左边,不能出现在任何产生式的右边,这样,就成为了 1型文法(即上下文有关文法)。其它与此类似,在1型文法的基础上,进一步规定该文法的任意产生式,其左部只允许有一个字符且必须为非终结符,这样就构成了上下文无关文法;再在上下文无关文法的基础上进行限制:规定除了左部有且只有一个非终结符外,还特别规

您可能关注的文档

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档