编译原理chap2课题.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 高级语言及其语法描述 ?*的子集U和V中的(连接)积定义为: UV={??∣??U ??V } 即集合UV中的符号串是由U和V的符号串连接而成的。注意,一般UV?VU,但(UV)W=U(VW). V自身的n次(连接)积记为: Vn = V V…V (n个V) 规定 V0 = {?}. 令: V* = V0?V1?V2?… 称 V*是V的闭包。 记V+ = VV*, 称 V+是V的正则包。 闭包V*中的每个符号都是由V中的符号串经有限次连接而成的。 第二章 高级语言及其语法描述 2.3.1 上下文无关文法: 文法是描述语言的语法结构的形式规则(即语法规则)。 所谓上下文无关文法是这样一种文法,它所定义的语法范畴(或语法单位)是完全独立于这种范畴可能出现的环境的。 请仔细阅读课本P27页的英文分析的例句,定义英文句子的规则可以说是一个上下文无关文法。其中He, me, book, gave,a 等,称为终结符号;句子、主语、谓语等为非终结符号;这个文法最终是要定义句子的语法结构,所以句子在这里成为开始符号;间接宾语→冠词名词 这种书写形式称为产生式。 第二章 高级语言及其语法描述 归纳起来,一个上下文无关文法G包括四个组成部分:一组终结符号,一组非终结符,一个开始符号,以及一组产生式。 所谓终结符号乃是组成语言的基本符号,即在程序语言中以前屡次提到的单词符号,如基本字,标识符,常数,算符和界符等 所谓非终结符号(也称语法变量)用来代表语法范畴。如“算术表达式”、“布尔表达式”、“过程”等。一个非终结符代表一个一定的语法概念。因此非终结符是一个类(或集合)记号,而不是个体记号。 第二章 高级语言及其语法描述 开始符号是一个特殊的非终结符号,它代表所定义的语言中我们最感兴趣的语法范畴,这个语法范畴通常称为“句子”。但在程序语言中我们最终感兴趣的是“程序”这个语法范畴,而其他的语法范畴都只不过是构造“程序”的一块块砖石。 产生式(也称为产生规则或简称规则)是定义语法范畴的一种书写规则。一个产生式的形式是 A→ α ,其中箭头左边的A是一个终结符,称为产生式的左部符号;箭头右边的α是终结符号或与非终结符号组成的一符号串,称为产生式的右部。 第二章 高级语言及其语法描述 产生式是定义语法范畴的。 如要定义一类含+、*的算术表达式,这个定义可以这样给出: “变量是一个算术表达式; 若E1和E2是算术表达式,则E1+E2、E1*E2和(E1)也是算术表达式。 对于这个定义,用产生式描述: E→i   E→E+E   E →E*E   E→(E)其中E代表“算术表达式”,i代表“变量” 第二章 高级语言及其语法描述 形式上定义一个上下文无关文法G是一个 四元式(VT,VN,S,£)其中 VT是一个非空有限集,它的每一个元素 称为终结符号; VN是一个非空有限集,它的每一个元素称为非终结符号,VT∩VN=?; S是一个非终结符号,称为开始符号; £是一个产生式(有限)集合,每个产生式形式是P→? ,其中,P∈VN,   ? ∈( VT∪VN)*开始符号S至少必须在某一产生式的左部出现一次。 第二章 高级语言及其语法描述 假定G是一个文法,S是它的开始符号。如果S?*?(表示从S出发,经0步或若干步可推出?),则称?是一个句型。仅含终结符号的句型是一个句子。文法G所产生的句子的全体是一个语言,将它记为L(G). L(G)={?|S ?+ ? ?∈VT } 例如:终结符号串(i*i+i)是文法 E→E+E|E*E|(E)|i    (2.1) 的一个句子。是因为有 E?(E)?(E+E) ? (E*E+E) ? (i*E+E) ? (i*i+E) ? (i*i+i)从开始符号E至 (i*i+i)的一个推导。而E,(E),(E*E+E)等是文法的句型。   第二章 高级语言及其语法描述 下面介绍几个简单文法的例子: 例2。1考虑一个文法G1: S→bA A→aA|a 它定义了一个什么语言呢? 从开始符S出发,我们可以推出如下句子: S?bA ?ba S?bA ?baA ?baa S?bA ?baA ? … ? baa…a 可以写为:L(G1)={ban|n≥1} 第二章 高级语言及其语法描述 例2.2 设有文法G S→P|aPPb P →ba|bQa Q →ab 求语言L(G). 解: L(G)={ba,baba,abab,ababab… } 例2。3 构

文档评论(0)

舞林宝贝 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档