编译原理capter.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 学习本章的目的 2.1 文法的直观概念 2.2 符号和符号串 2.3 文法和语言的形式定义 2.4 文法的类型 2.5 上下文无关文法及其语法树 2.6 句型的分析 2.7 有关文法实用中的一些说明 学习本章的目的 构造编译程序的算法是从研究源程序及目标程序产生的,首先找到源语言的形式描述(常用的有语法描述图或扩充的巴科斯-瑙尔范式(即EBNF)),根据这种描述,构造出相应的分析加工程序。 语言分语法,语义和语用。程序语言语法的形式描述是很好用的,语义的形式描述不那么好用,但它推动语言理论的发展。 文法的直观概念 有无穷句子的语言,无法列出全部句子,可以给出一些规则,用这些规则来说明(或者定义)句子的组成结构,这些规则成为判别句子结构合法与否的依据,可以看成是一种元语言,用来描述语言,仅仅涉及语言句子的结构描述,这样的语言描述称为文法。(例) 有了规则,可以用它们去推导或产生句子(例) 文法作为工具,严格地定义了句子的结构,也能够用适当条数的规则把语言的全部句子描述出来,是以有穷集合刻划无穷集合的工具。 符号和符号串 字母表 符号串 一. 符号串的定义 二. 术语 三. 符号串的运算 四. 符号串集合的运算 文法和语言的形式定义 一. 文法的定义 二. 推导 三. 语言 例:E ? E+T ?T+T ?F+T ?a+T? a+F ?a+a 四个文法类型的定义是逐渐增加限制的,因此是正规文法,就是上下文无关文法,就是上下文有关文法,就是0型文法。 上述四类文法产生的语言依次称为正规语言、上下文无关语言、上下文有关语言和0型语言。 廖刊编绣哮台松吝弦涡凳骡稽谅丧双闹翌丛鹊笨实咽募膏脏实楚搬咬固寸编译原理chapter2编译原理chapter2 上下文无关文法 及其语法树 上下文无关文法有足够能力描述现今程序设计语言的语法结构(例),因此我们关心它形成的语言的句子的分析和分析方法的研究。语法树(推导树)是描述上下文无关文法的句型推导的直观方法,给定文法G,对于G的任何句型都能构造与之关联的语法树。 而怕爽今侩拢议碍寅舷急器近轨扰蛋抉橱侧具烂伦崭接础绎孟铸聚变釉埂编译原理chapter2编译原理chapter2 语法树定义 设G=(VT,VN,S,P),G的一棵语法树满足如下条件: 1. 每一个结点有一个标记,此标记是VT∪VN∪{ε}中的符号。 2.根的标记是S。 3.如果一个结点是内部结点,且有标记A,那么A必在VN中。 4.如果编号为n的结点有标记A,结点n1,n2,…,nk 是结点n的从左到右的儿子,并分别有标记X1,X2,…,Xk,则A?X1X2…Xk必是P中的产生式 5. 如果结点n有标记ε,那么结点n是叶子,且是它父亲唯一的儿子。 式漱霜脖黔躇厅拽舍僳偶笋冤攀赊务堤暂橇选锗沽愧号竖炒役履软迟栖砒编译原理chapter2编译原理chapter2 例3.5 G=(VT,VN,S,P), 其中 P: S?aAS?a A ?SbA ?SS ?ba 3 1 2 4 6 5 7 8 9 10 11 S a A S S b A a a b a 上图是文法G的句型aabbaa的语法树 殆力坍烦约猩亨咎铬尤经吵鸭瘤荐嫡佳米檬扫荡佩假喻它辐恩积曳溉嘶誉编译原理chapter2编译原理chapter2 1.语法树表示了在推导过程中使用了哪个产生式和施用在哪个非终结符上,但并没有表明使用产生式的顺序。 2.若文法是无二义性的,对于一个句子的多种推导过程,画出的分析树是一样的。语法树并未描述推导过程。 3. 若文法是二义性的,一棵语法树未必能表示一个句型的所有不同推导过程,后面还会看到,一个句型也不一定只对应唯一的一个语法树,一个句型也不一定只有唯一的最左(最右)推导。 4.在书中,用画语法树的过程解释语法分析过程,用语法树图解语法结构。 关于语法树的几点说明 楼刘队戊琶咨绚抢概压拧伦砚强菩蛹愤化男汕涉惶悸控朗追纯锻邱蔡帐工编译原理chapter2编译原理chapter2 如果在推导的任何一步α ? β,其中α、β是句型,都是对α 中的最左(最右)非终结符进行替换,则称这种推导为最左(最右)推导。 在形式语言中,最右推导常被称为规范推导。由规范推导得到的句型称为规范句型。 最左(右)推导 冠黔瀑贫栽蚂畏佯庐耳耽禄抿腥嗽肿各椎移唾脆为魏龟癣泉集鹊督赦袭泼编译原理chapter2编译原理chapter2 例如,G[E](例3.2)和w=a+a * a E?E+T ?T+T ?F+T ?a+T ?a+T*F ?

文档评论(0)

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

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

1亿VIP精品文档

相关文档