程序设计语言的语法描述.DOCVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 第PAGE 1页 共 NUMPAGES 4页 第3章 程序设计语言的语法描述(Tsu版电子教案) 第3章 程序设计语言的语法描述 文法:对语言结构的定义和描述。 3.1 文法的引入 先讨论自然语言的文法。例:the big elephent ate a banana ㈠语法树 根据英语的语法,上述句子的语法结构可用图(语法树)表示如下: 句子 主语 谓语 冠词 形容词 名词 动词 直接宾语 the big elephant ate 冠词 名词 a banana ①非叶结点称为语法单位,在形式语言中称为非终结符。 ②处于根结点位置的结点又称为开始符号。 ③叶结点称为单词符号,在形式语言中称为终结符。 ㈡规则 可以通过建立一组规则,来描述上述句子的语法结构,规则在形式语言中称为产生式。上述英文句子可用下述规则来描述: 句子→主语谓语 主语→冠词形容词名词 冠词→the| a 形容词→big 名词→elephant| banana 谓语→动词直接宾语 直接宾语→冠词名词 动词→ate ㈢由规则推导句子 可用规则来推导出句子。从开始符号出发,若能从规则推导出某符号串,则该符号串就是该文法的合法的句子,反之语法错误。 句子主语谓语 冠词形容词名词谓语 the 形容词名词谓语 the big 名词谓语 the big elephant 谓语 the big elephant 动词直接宾语 the big elephant ate 直接宾语 the big elephant ate 冠词名词 the big elephant ate a 名词 the big elephant ate a banana 上述推导可简单表示为: 句子the big elephant ate a banana。 值得注意的是用上述规则可推导出多个句子,因存在推导 句子the big banana ate an elephant 故the big banana ate an elephant也是文法的一个合法的句子。但意义是荒谬的,也就是说句子的语义是错误的。 一个语法正确的句子不能保证其语义是正确的,故一个句子是否正确,需要进行语法和语义两方面检查。 ㈣递归规则和递归文法 = 1 \* GB3 ①递归定义 = 2 \* GB3 ②递归规则(直接递归) = 3 \* GB3 ③间接递归 = 4 \* GB3 ④递归文法 利用递归文法我们可以用有穷的规则来描述无穷的语言,这不但解决了语言的定义问题,而且使得对语言的语法检查成为可能。 例:定义无符号整数。 = 1 \* GB3 ①不采用递归规则,描述无符号整数全体就要使用无穷多条的规则。 无符号整数→数字|数字数字|数字数字数字|… 数字→0|1|2|3|4|5|6|7|8|9|0 = 2 \* GB3 ②采用递归规则,描述无符号整数全体仅需12条规则。 无符号整数→无符号整数数字|数字 N→ND|D 数字→0|1|2|3|4|5|6|7|8|9|0 D→0|1|2|3|4|5|6|7|8|9|0 例1:无符号整数1 ND1 例2:无符号整数23 NNDDD2D23 例3:无符号整数456 NNDNDDDDD4DD45D456 3.2 上下文无关文法 形式语言的奠基人乔姆斯基将文法分为4种类型,它们是: 短语文法(0型文法) 上下文有关文法(1型文法) 上下文无关文法(2型文法) 正规文法(3型文法) 这四种文法在形式语言中都有严格的定义。但对于程序设计语言来说,上下文无关文法已经够用了,上下文无关文法有足够的能力描述大多数现今使用的程序设计语言的语法结构。以后,“文法”一词若无特别说明,则指“上下文无关文法”。 ㈠文法和语言 一个文法G是一个四元式(VT,VN,S,VP),其中 VT是一个终结符的非空有限集,终结符通常用小写字母表示。 VN是一

您可能关注的文档

文档评论(0)

jinzhuang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档