天津大学编译原理讲义-Part2高级语言及其语法描述ppt课件.ppt

天津大学编译原理讲义-Part2高级语言及其语法描述ppt课件.ppt

ID:59472106

大小:1.18 MB

页数:38页

时间:2020-09-14

天津大学编译原理讲义-Part2高级语言及其语法描述ppt课件.ppt_第1页
天津大学编译原理讲义-Part2高级语言及其语法描述ppt课件.ppt_第2页
天津大学编译原理讲义-Part2高级语言及其语法描述ppt课件.ppt_第3页
天津大学编译原理讲义-Part2高级语言及其语法描述ppt课件.ppt_第4页
天津大学编译原理讲义-Part2高级语言及其语法描述ppt课件.ppt_第5页
资源描述:

《天津大学编译原理讲义-Part2高级语言及其语法描述ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Part2 高级语言及其语法描述授课:胡静内容提要预备知识——形式语言基础程序语言的定义(语法定义、语义定义)高级语言的一般特性(程序结构、数据类型和操作、语句与控制结构)程序语言的文法文法的类型上下文无关文法及其语法树有关文法实用中的一些说明预备知识更多的概念和一些约定A,B,C,…用来表示非终结符a,b,c,…表示终结符…,X,Y,Z可以用来表示终结符或者非终结符…,w,x,y,z表示终结符号串α,β,γ,δ,…表示由终结符或非终结符构成的符号串在产生式A→α中,A是产生式的左边(lefthandside,LHS)α是产生式的

2、右边(righthandside,RHS)A→α1

3、…

4、αn表示产生式A→α1,…,A→αn符号串和符号串集合的运算符号串和符号串集合的运算将字符看做符号,则单词就是符号串,单词集合就是符号串的集合将单词看做符号,则句子就是符号串,而所有句子的集合(语言)就是符号串的集合程序语言的定义程序语言的语法定义所谓一个语言的语法是指这样一组规则,用它可以形成和产生一个合式的程序。这些规则一部分称为词法规则则,另一部分称为语法规则(或产生规则)词法规则:词法规则规定了字母表中哪样的字符串是一个单词符号,是单词符号的形成规则语法规则:语言的语

5、法规则规定了如何从单词符号形成更大的结构(即语法单位),换言之,语法规则是语法单位的形成规则程序语言的定义程序语言的语义定义所谓一个语言的语义是指这样的一组规则,使用它可以定义一个程序的意义。这些规则称为语义。我们将要介绍的是目前大多数编译程序普遍采用的一种方法,即基于属性文法的语法制导翻译方法,虽然还不是形式系统,但是比较接近形式化的。高级语言的一般特征高级语言的程序结构程序子程序或分程序语句表达式数据引用算符函数调用数据类型和操作数据类型的要素:用于区别这种类型的数据对象的属性;这种类型的数据对象可以具有的值;可以作用于这种类

6、型的数据对象的操作;数据类型分类:初等数据类型:数值数据、逻辑数据、字符数据、指针类型数据结构:数组、记录、字符串、表格、栈、队列和抽象数据类型(Ada通过程序包package提供,其余通过类class提供)语句与控制结构表达式:一个表达式是由运算量(操作数,即数据引用或函数调用)和算符组成的。语句:不同程序语言含有不同形式和功能的各种语句执行语句:描述程序的动作,分为赋值语句、控制语句、输入/输出语句;说明性语句:定义各种不同数据类型的变量或运算从形式上分,语句可以分为简单句、复合句和分程序等。文法的直观概念关于文法的定义定义3

7、.1文法G定义为四元组(VN,VT,P,S)。其中VN为非终结符号(或语法实体,或变量)集;VT为终结符号集;P为产生式(也称规则)的集合;VN,VT和P是非空有穷集。S称做识别符号或开始符号,是一个非终结符(S∈VN),至少要在一条规则中作为左部出现。VN和VT不含公共元素,即VN∩VT=Φ。通常V表示VN∪VT,V称为文法G的字母表或字汇表。例3.1文法G=(VN,VT,P,S)VN={S},VT={0,1}P={S→0S1,S→01}S为开始符号文法可以简写,只需要指出开始符号和产生式即可。关于文法的定义(续)定义3.2如α

8、→β是文法G=(VN,VT,P,S)的规则(或说是P中第一个产生式),γ和δ是V*中的任意符号串,若有符号串v,w满足:v=γαδ,w=γβδ,则说v(应用规则α→β)直接产生w,或说w是v的直接推导。(v=>w)例:G[S]:S→0S1,S→01S0S100S11000S11100001111G关于文法的定义(续)定义3.3如果存在直接推导的序列:v=w0=>w1=>w2…=>wn=w,(n>0),则称v推导出(产生)w(推导长度为n)。记做v=>+w。定义3.4若有v=>+w,或v=w,则记做v=>*w。规范推导(最右

9、推导)最左推导:若规则右端符号串中有两个以上的非终结符时,先推导左边的。最右推导:若规则右端符号串中有两个以上的非终结符时,先推导右边的。关于文法的定义(续)定义3.5设G[S]是一文法,如果符号串x是从识别符号推导出来的,即有S=>*x,则称x是文法G[S]的句型。若x只由终结符号组成,则称x为G[S]的句子。定义3.6文法G所产生的语言定义为集合{x

10、S=>*x,其中S为文法的开始符号,且x∈VT*}。可用L(G)表示该集合。例:G:S→0S1,S→01S0S100S11000S11100001111L(G)={0n1

11、n

12、n≥1}关于文法的定义(续)定义3.7若L(G1)=L(G2),则称文法G1和G2是等价的。例1:如文法G1[A]:A→0R与G2[S]:S→0S1等价A→01S→01R→A1例2:G1[E]:E→i与G2[E]:E→T

13、E+T等价E→E+ET

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。