编译原理讲义(第二章文法与语言).ppt

编译原理讲义(第二章文法与语言).ppt

  1. 1、本文档共81页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

编译原理讲义

(第二章:文法与语言)南京大学计算机系赵建华文法与语言文法被用来精确而无歧义地描述语言的句子的构成方式.文法描述语言的时候不考虑语言的含义。字母表定义:字母表是有穷非空集合。字母表包含了语言中所允许出现的一切符号。符号串定义:符号串是由字母表中的符号所组成的有穷序列。一个语言的句子总是它的字母表的符号串。这个符号串的组成必须是按照文法规则组合而成的。语法分析的一个重要任务就是:判断一个符号串的组成是否满足某个文法的规定,并且分析出是如何按照规则组成的。关于符号串的概念和操作运算:联结(并置):x=123,y=45那么xy=12345方幂:x的n次方幂即将n个x联结。子符号串:v是xvy的子符号串。v非空头,尾:x是xy的头,y是xy的尾。符号串集合定义:若集合A中的一切元素都是同一个字母表上的集合,那么A被称为该字母表上的符号串集合。在本课程中,语言被认为是句子的集合。(外延定义?)所以,一个语言就是对应于它的字母表上的一个符号串集合。符号串集合的运算乘积:AB={xy|x?A且y?B}方幂:A的n次方幂就是将n个A相乘。字母表的闭包与正闭包:字母表A的闭包是A上的所有符号串(包括空字符串)的集合。字母表A的正闭包是A上的所有的非空符号串的集合。文法和语言的定义(重写规则)重写规则:一个重写规则是一个有序对(U,u),通常写作 U::=u。其中U是一个符号,称为左部;u是一个符号串称为右部。有时也说这个规则是U的一个规则。重写规则总是基于某个字汇表的。U和u中的符号必须都在这个字汇表内。这个字汇表中有些符号不能作为左部。存在更加复杂的规则,但是这样的规则足够描述程序设计语言的文法。文法和语言的定义(重写规则)例如:〈标识符〉::=〈字母〉〈标识符〉::=〈字母〉|〈标识符〉〈字母〉第二个规则实际使用了BNF的表示方法。BNF表示方法的还包括:花括号表示重复: {〈字母〉}方括号表示可选: [〈参数〉]文法和语言的定义(文法)文法:文法G[Z]是一组有穷非空的重写规则的集合。其中Z称为识别符号。G为文法名字文法例子:P22,例子2.10。所有的规则都是基于同一个符号表V。符号表又可分划非终结符号集合VN和终结符号结合VT。〈句子〉::=主语谓语状语主语::=名词名词::=Peter|Berry|River谓语::=动词动词::=Swims介词::=in状语::=介词名词文法和语言的定义(推导)文法的作用是描述某种语言的句子的构成方式。使用文法我们可以产生对应语言的句子。从识别符号开始,不断将当前符号串中的非终结符号替换为该符号的某个规则的右部。直到当前的符号串中所有的符号都是终结符号为止。文法和语言的定义(推导)例子:〈句子〉=〈主语〉〈谓语〉〈状语〉=〈名词〉〈谓语〉〈状语〉=……=Peterswimsinriver文法和语言的定义(推导)直接推导:v=xUy,w=xuy,并且U::=u是文法中的一个重写规则,那么我们说v可以直接推导到w,或者w可以直接规约到v。记作v=w。例如:〈主语〉〈谓语〉〈状语〉=〈名词〉〈谓语〉〈状语〉文法和语言的定义(推导)推导:对于符号串v和w,如果存在一个直接推导序列u0=u1=…=un,并且u0=v,un=w,那么我们说v可以推导到w,或者w规约到v。记作v=+w。这个推导长度为n,且称w为对应于v的一个字。v=*w 表示v=w或者v=+w。文法和语言的定义(推导)推导的例子:P25页例2.12。文法:标号::=数字序列数字序列::=数字序列数字|数字数字::=0|1|2|3|…|9VT{0,1,2,3,4,5,6,7,8,9},VN={}推导的例子标号=数字序列 =数字序列数字 =数字序列数字数字=数字数字数字 =数字23 =123语言的定义(句型,句子)对于文法G[Z],x称为G的一个句型如果:Z=*x识别符号是最简单的句型。G[Z]的一个句型x被称为句子,如果:x?VT* 也就是说句子是全部由终结符号组成的句型。语言的定义(短语,简单短语)短语:对于文法G[Z],如果Z=*xUy,U=+u。显然,w=xuy是一个句型。我们称u是句型w中相对于U的短语。简单短语:在上面的定义中,如果U::=u是G的一个规则,那么,u是句型w中相对于U的简单短语。例子:P22页例2.13。语言的定义(短语,句柄)

文档评论(0)

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

科技工作者

1亿VIP精品文档

相关文档