版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 程序设计语言的语法描述,3.1 文法的引入,文法:对语言结构的定义和描述。 先讨论自然语言的文法。例: the big elephent ate a banana,3.1 文法的引入,语法树 根据英语的语法,上述句子的语法结构可用图(语法树)表示如下:,3.1 文法的引入,3.1 文法的引入,非叶结点称为语法单位,在形式语言中称为非终结符。 处于根结点位置的结点又称为开始符号。 叶结点称为单词符号,在形式语言中称为终结符。,3.1 文法的引入,规则 可以通过建立一组规则,来描述上述句子的语法结构,规则在形式语言中称为产生式。上述英文句子可用下述规则来描述:,3.1 文法的引入,1. 2
2、. 3. the| a 4. big 5. elephant| banana 6. 7. 8. ate,3.1 文法的引入,由规则推导句子 可用规则来推导出句子。从开始符号出发,若能从规则推导出某符号串,则该符号串就是该文法的合法的句子,反之语法错误。,3.1 文法的引入, 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,3.1 文法的引入,上述推导可简单表示为:
3、 the big elephant ate a banana。,3.1 文法的引入,值得注意的是用上述规则可推导出多个句子,因存在推导 the big banana ate an elephant 故the big banana ate an elephant也是文法的一个合法的句子。但意义是荒谬的,也就是说句子的语义是错误的。 一个语法正确的句子不能保证其语义是正确的,故一个句子是否正确,需要进行语法和语义两方面检查。,3.1 文法的引入,递归规则和递归文法 递归定义 定义某事物,又用到某事物。 在规则的左部和右部有相同的非终结符 U xUy U为非终结符,xy为终结符。,3.1 文法的引入
4、,递归规则和递归文法 递归规则(直接递归) 在产生式的左部和右部都含有非终结符U,故U xUy是递归规则。 若x= , U Uy称为左递归规则, 若y= ,U xU称为右递归规则。,3.1 文法的引入,递归规则和递归文法 间接递归 文法的递归性还可以在推导过程中由规则间接产生: V Uy|z, U xV 上述规则不是递归规则,但存在推导VUy xVy,即V xVy,称文法含有间接递归。,3.1 文法的引入,递归规则和递归文法 递归文法 含有递归规则或间接递归的文法称为递归文法,3.1 文法的引入,利用递归文法我们可以用有穷的规则来描述无穷的语言,这不但解决了语言的定义问题,而且使得对语言的语法
5、检查成为可能。,3.1 文法的引入,例:定义无符号整数。 不采用递归规则,描述无符号整数全体就要使用无穷多条的规则。 | 0|1|2|3|4|5|6|7|8|9|0 采用递归规则,描述无符号整数全体仅需12条规则。 |NND|D 0|1|2|3|4|5|6|7|8|9|0D0|1|2|3|4|5|6|7|8|9|0,3.1 文法的引入,例1:无符号整数1 N D 1 例2:无符号整数23 N ND DD 2D 23 例3:无符号整数456 N ND NDD DDD 4DD 45D 456,3.2上下文无关文法,文法是描述语言结构的形式规则(语法规则),这些规则必须是准确的,易于理解的,应当有较
6、强的描述能力,足以描述各种不同的结构,3.2上下文无关文法,形式语言的奠基人乔姆斯基将文法分为4种类型,它们是: l 短语文法(0型文法) l 上下文有关文法(1型文法) l 上下文无关文法(2型文法) l 正规文法(3型文法) 这四种文法在形式语言中都有严格的定义。但对于程序设计语言来说,上下文无关文法已经够用了,上下文无关文法有足够的能力描述大多数现今使用的程序设计语言的语法结构。以后,“文法”一词若无特别说明,则指“上下文无关文法”。,3.2上下文无关文法,上下文无关文法所定义的语法单位和该语法单位可能出现的环境无关。 自然语言中,一个句子或一个字,其意义和它们所处的上下文有密切关系,因
7、此上下文无关文法不适合描述自然语言。,3.2上下文无关文法,文法和语言 一个文法G是一个四元式(VT,VN,S,VP),其中 l VT是一个终结符的非空有限集,终结符通常用小写字母表示。 l VN是一个非终结符的非空有限集,非终结符通常用大写字母表示。 l S是一个特殊的非终结符(SVN),称为开始符号。 l VP是一个产生式(规则)的有限集合,每个产生式的形式是A ,其中AVN,(VTVN)*。,3.2上下文无关文法,终结符是语言的基本符号,就是源程序中的单词,是语言不可分割的最小单位。 单词经过词法分析后,语法分析只使用单词二元式的种别code。 语法分析关心的是:单词是标识符还是常数,不
8、考虑是哪个标识符,常数是多少。,3.2上下文无关文法,因此,终结符用单词的种别表示。 i 表示标识符 x 表示整形或实形变量 y 表示无符号实常数 单字符单词种别与单词本身相同+ 基本字借用原单词形式,3.2上下文无关文法,非终结符用来表示抽象的语法单位,算术表达式,赋值语句,说明语句,程序。 通常用大写字母表示,也用表示 开始符号是特殊的非终结符,定义文法的出发点,3.2上下文无关文法,产生式是定义语法单位的一种书写规则。 上下文无关文法产生式的左部必定是一个非终结符,该非终结符称为产生式的左部符号,简称左部符号。 产生式的右部是终结符和非终结符经过有限次连接构成的文法符号串,可以是空字。,
9、3.2上下文无关文法,为方便,若干个左部符号相同的产生式,如 A 1 A 2 A 3 A 4 A N 合并:A 1 | 2| | N,3.2上下文无关文法,例: G=(VT,VN,S,VP) VT=+,*,(,),i VN=E S=E VP=EE+E,EE*E,E(E),Ei 可简记为: G:EE+E|E*E| (E)|i 根据上述文法,可推导出任何仅包含加乘的算术表达式。,3.2上下文无关文法,基本术语 直接推出和直接归约 推导和归约 句型 句子 语言 等价文法 最左推导和最右推导,3.2上下文无关文法,文法的二义性 语法树 我们可以用一个有向图表示一个句型的推导,这种表示称为语法树。 在一
10、般情况下,某一句型不论其推导过程如何,其最终形成的语法树是相同的,故语法树是不同推导过程的共性抽象。若仅进行最左(右)推导,则语法树和最左(右)推导等价。,3.2上下文无关文法,二义文法 某些文法的句型的推导可能对应一棵以上的语法树,或存在一个以上的最左(右)推导。,3.2上下文无关文法,例:已知文法G:EE+E|E*E|(E)|i和句子i+i*i,该句子存在二个最左(右)推导,即二棵语法树。,3.2上下文无关文法,语法树1(先形成+后形成*),3.2上下文无关文法,语法树2(先形成*后形成+),3.2上下文无关文法,句子i+i*i的二个最左推导序列: EE+Ei+Ei+E*Ei+i*Ei+i*i EE*EE+E*Ei+E*Ei+i*Ei+i*i 句子i+i*i的二个最右推导序列: EE+EE+E*EE+E*iE+i*ii+i*i EE*EE*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025海南省水利水务发展集团有限公司招聘5人模拟笔试试题及答案解析
- 2025广东省轻工业技师学院招聘1人笔试考试参考试题及答案解析
- 2025山东鲁西国际陆港有限公司公开招聘(14人)备考笔试试题及答案解析
- 2025安徽池州市东至县医疗保障局所属事业单位选调10人备考考试试题及答案解析
- 中国火箭公司2026校园招聘模拟笔试试题及答案解析
- 2025江苏省人民医院心血管内科科研助理招聘1人参考笔试题库附答案解析
- 2025福建宁德市统计局普查中心公开招聘工作人员3人参考考试试题及答案解析
- 广东江门台山市林业局招聘2人参考考试试题及答案解析
- 2025重庆沪渝创智生物科技有限公司面向社会招聘工作人员5人备考笔试题库及答案解析
- 2025内蒙古呼和浩特市敬业学校初中部招聘模拟笔试试题及答案解析
- 电除颤临床操作规范指南样本
- 2026年辽宁生态工程职业学院单招职业适应性考试题库必考题
- 2026届高考化学冲刺复习水溶液中离子平衡
- 2025年产业融合发展与区域经济一体化进程研究可行性研究报告
- 2025年大学物联网工程(传感器技术)试题及答案
- 工程部项目进度监控与风险应对方案
- 河南省青桐鸣2026届高三上学期第二次联考语文试卷及参考答案
- 《国家赔偿法》期末终结性考试(占总成绩50%)-国开(ZJ)-参考资料
- 社会能力训练教程
- 哈尔滨工业大学本科生毕业论文撰写规范
- 2025年河南高二政治题库及答案
评论
0/150
提交评论