第二篇 高级程序设计语言.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 高级语言及其语法描述 符号串集合V自身的n次(连接)积记为: Vn = V V…V =Vn-1V =VVn-1 (n个V) 规定 V0 = {?}. V的闭包:令: V* = V0 ∪ V1 ∪ V2 ∪ … 称 V*是V的闭包。 V的正则包(正闭包,正则闭包):记V+ = VV*, 称 V+是V的正则包,即V+ =V1 ∪ V2 ∪ V3 ∪ …。 一个例子 有一个字母表:A={a,b,c} A0={ε} A1=? A2=? A3=? A*=? A+=? 第二章 高级语言及其语法描述 文法是描述语言的语法结构的形式规则(即语法规则)。 所谓上下文无关文法是这样一种文法,它所定义的语法范畴(或语法单位)是完全独立于这种范畴可能出现的环境的。 特点:独立性 缺点:不能用来描述自然语言,但对于程序语言基本上够用,所以以后凡“文法”一词,若无特殊说明,均指上下文无关文法 引例 例子:对于英文句子:He gave me a book. 是由如下语法规则产生的: 2.3.1 上下文无关文法 第二章 高级语言及其语法描述 由语法规则“推导”出句子的过程 “推导” 过程对应的语法分析树 第二章 高级语言及其语法描述 上下文无关文法的定义 一个上下文无关文法G包括四个组成部分:一组终结符号,一组非终结符,一个开始符号,以及一组产生式。 形式上定义一个上下文无关文法G是一个四元式(VT,VN,S,P) 上下文无关文法的形式定义 形式上定义一个上下文无关文法G是一个四元式 (VT,VN,S,P)其中 VT是一个非空有限集,它的每一个元素称为终结符号; VN是一个非空有限集,它的每一个元素称为非终结符号,VT∩VN=?; S是一个非终结符号,称为开始符号; P是一个产生式(有限)集合,每个产生式形式是A→? ,其中,P∈VN,   ? ∈( VT∪VN)*开始符号S至少必须在某一产生式的左部出现一次。 第二章 高级语言及其语法描述 上下文无关文法的定义 所谓终结符号乃是组成语言的基本符号,“终结”含义在于是具有独立意义的最小语法单位,即不能再分解了的语法单位,如, He, book,如程序语言中的基本字,标识符,常数,算符和界符等.如:{ *,+,a,b,c,(,),,,+,-} 终结符号一般用小写字母表示 上下文无关文法 所谓非终结符号(也称语法变量)用来代表语法范畴。如“算术表达式”、“布尔表达式”、“过程”等。一个非终结符代表一个一定的语法概念。因此非终结符是一个类(或集合)记号,而不是个体记号。 非终结符号一般用大写字母表示 如:{E,T,F} 第二章 高级语言及其语法描述 开始符号是一个特殊的非终结符号,它代表所定义的语言中我们最感兴趣的语法范畴。 例:E 上下文无关文法 产生式(也称为产生规则或简称规则)是定义语法范畴的一种书写规则。 一个产生式的形式是 A→ α 其中箭头左边的A是一个非终结符,称为产生式的左部符号; 箭头右边的α是终结符号或与非终结符号组成的一符号串,称为产生式的右部,或称候选式。 上下文无关文法 第二章 高级语言及其语法描述 文法简写约定 只写出产生式集合; 第一个产生式的左部符号约定为文法的开始符号 所有产生式中的大写字母组成文法的非终结符号集;小写字母组成文法的终结符号集; 关于产生式 可能用多个产生式对一个非终结符进行定义 E→i   E→E+E   E →E*E   E→(E) 产生式实例 变量是一个算术表达式; 若E1和E2是算术表达式, E1+E2是算术表达式 E1*E2是算术表达式 (E1)是 E→i   E→E+E   E →E*E   E→(E) 算术表达式 定义产生式,可以采用递归的形式 直接递归 间接递归 第二章 高级语言及其语法描述 利用语法规则进行分析的方法 推导——对于当前符号串中的非终结符,用对应的产生式的右部去替换之。 构造语法树——文法的开始符号作为根结点,每推导一步,将非终结符作为父结点,对应的产生式的右部作为其孩子结点。 用文法定义语言 采用推导的方法:利用产生式,对非终结符进行替换、展开 E→i   E→E+E   E →E*E   E→(E) 推导与直接推导 直接推导:仅当A —γ是一个产生式,有 αAβ ? αγ β 该推导称为直接推导(直接导出) 推导的描述形式: ?*:任意次推导 ?+:至少一次推导 第二章 高级语言及其语法描述 句型与句子 假定G是一个文法,S是它的开始符号。如果S?*?(表示从S出发,经0步或若干步可推出?),则称?是一个句型。仅含终结符号的句型是一个句子。文法G所产生的句子的全体是一个语言,将它记为L(G). L(G)={?|S ?+ ? ?∈V

文档评论(0)

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

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

1亿VIP精品文档

相关文档