第3章 文法和语言最新.ppt

  1. 1、本文档共121页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 一 语法树定义 定义1 设G=( VN,VT,P,S)是给定文法,对于G的任何句型,则称满足下列条件的树为G的一颗语法树。 1. 每个结点都有G的一个文法符号,且根结点标有初始符S,非叶结点标有非终极符; 2. 如果结点n有标记A,其直接子孙结点从左到右的次序是n1,n2,…,nk,其标记分别为A1,A2,…,Ak,那么A→A1A2,…,Ak一定是P中的一个产生式。 语法树的结果: 从左到右读出叶子的标记而构成的行。? * 语法树---句型推导的直观表示 (句型、推导) G[E]: E→E+T|T T→T*F|F F→(E)|a E?E+T ?T+T ?F+T ?a+T ?a+T*F ?a+F*F ?a+a*F ?a+a*a E?E+T ?E+T*F ?E+T*a ?E+F*a ?E+a*a ?T+a*a ?F+a*a ?a+a*a E?E+T ?T+T ?T+T*F ?F+T*F ?F+F*F ?a+F*F ?a+F*a ?a+a*a 以上推导对应的语法树是否相同? * 例:G′ [E]: E → i E → E+E E → E*E E → (E) E E + E E * E i i i E E * E i E + E i 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 * 上下文无关文法的语法树 句型aabbaa的可能推导序列和语法树 例: G[S]: S→aAS A→SbA A→SS S→a A→ba S a A S S b A a a b a S?aAS?aAa?aSbAa?aSbbaa?aabbaa S?aAS?aSbAS?aabAS?aabbaS?aabbaa S?aAS?aSbAS?aSbAa?aabAa?aabbaa * 根据推导序列,对每步推导画相应分枝 A S a S b S A a a b a ?aSbAS ?aabAS ?aabbaS ?aabbaa ?aAS S 二 如何画出分析树 (自顶向下) * 根据归约序列,对每步归约画相应分枝 A S a S b S A a a b a ?aAa ?aSbAa ?aSbbaa ?aabbaa ?aAS S 二 如何画出分析树 (自底向上) * 2.最左(右)推导 左(右)句型 最左(最右)推导:在推导的任何一步α?β,其中α、β是句型,都是对α中的最左(右)非终结符进行替换 最右推导被称为规范推导。 由最左推导所得的句型称为左句型 由规范推导所得的句型称为右句型(规范句型) * 左分析:由文法开始符号S到句子x的最左推导中所用规则序列称为x的一个左分析 按左分析来建立句子的语法树,则语法树的生长次序是自顶向下(根?叶子) 左分析又称自顶向下分析 右分析:由S到句子x的最右推导所用规则逆序列称为x的一个右分析。 按右分析来建立句子的语法树,则语法树的生长次序是自底向上的。 右分析又称自底向上分析 * 自上而下的语法分析 例:文法G: S → cAd A → ab A → a 识别输入串w=cabd是否为该文法的句子 S S S c A d c A d a b 推导过程:S ? cAd cAd ? cabd * 自下而上的语法分析 例:文法G: S → cAd A → ab A → a 识别输入串w=cabd是否该文法的句子 S A A c a b d c a b d c a b d 规约过程构造的推导: cAd ? cabd S ? cAd * 一个句型推导或分析用一棵树结构图示出来,它反应了一个句子语法结构的层次。 2.

文档评论(0)

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

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档