电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

编译原理讲义 (第二章文法与语言)VIP免费

编译原理讲义 (第二章文法与语言)_第1页
编译原理讲义 (第二章文法与语言)_第2页
编译原理讲义 (第二章文法与语言)_第3页
编译原理讲义(第二章:文法与语言)南京大学计算机系赵建华文法与语言•文法被用来精确而无歧义地描述语言的句子的构成方式.•文法描述语言的时候不考虑语言的含义。字母表定义:字母表是有穷非空集合。•字母表包含了语言中所允许出现的一切符号。符号串•定义:符号串是由字母表中的符号所组成的有穷序列。•一个语言的句子总是它的字母表的符号串。这个符号串的组成必须是按照文法规则组合而成的。•语法分析的一个重要任务就是:判断一个符号串的组成是否满足某个文法的规定,并且分析出是如何按照规则组成的。关于符号串的概念和操作•运算:–联结(并置):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|…|9–VT{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的一...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部