高级程序设计语言 编译原理PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
语句1; 语句2; 语句n; 许多广为使用的语言,如FORTRAN、C、Pascal,等等,属于这 类语言。
.
9
2.2.1 高级语言分类
二、应用式语言
与强制式语言不同的是,应用式语言更注重程序所表示的 功能,而不是一个语句接一个语句地执行。程序的开发过程是 从前面已有的函数出发构造出更复杂的函数,对初始数据集进 行操作直至最终的函数可以用于从初始数据计算出最终的结果。 这种语言通常的语法形式是:
函数n(…函数2(函数1(数据))…)
因此,这种语言也称函数式语言。LISP(20 世纪 50 年代末由 麻省理工学院为研究人工智能而开发的)和ML(20世纪70年代,由 爱丁堡大学开发的一个通用的函数式编程语言)属于这种语言。
.
10
2.2.1 高级语言分类
三、基于规则的语言
基于规则的语言程序的执行过程是:检查一 定的条件,当它满足值,则执行适当的动作。 最有代表性的基于规则语言是Prolog,它也称 逻辑程序设计语言,因为它的基本允许条件是 谓词逻辑表达式。这类语言的语法形式通常为:
.
12
2.2.2 程序结构
不同程序语言都有各自的程序结构
C语言程序可以包含多个函数 Pascal 支持过程的嵌套定义 程序结构的不同,决定了符号表构造方法
的不同
.
13
Pascal 是一个允许子程序嵌套定义的语言
program main
… procedure P1; … procedure P11; … begin … end; begin … end; procedure P2; … begin … end;
建立在有限字母集之上的一个符号系统 有一定的语法和语义规则
语法规则:词法规则和语法规则 语义规则:描述语法单位的功能和含义
程序设计语言的功能是描述数据和对数 据的运算
.
7
2.2 高级语言的一般特性
2.2.1 高级语言分类 2.2.2 程序结构 2.2.3 数据类型与操作 2.2.4 语句与控制结构
begin … end
.
14
2.2.3 数据类型与操作
程序设计语言支持特定的数据类型与操作。 一个数据类型通常包括以下三种要素: a.用于区别这种类型的数据对象的属性 b.这种类型的数据对象可以具有的值 c.可以作用于这种类型数据对象的操作
.
15
一.初等数据类型(基本数据类型)
常见的初等数据类型有:
.
17
二.构造数据类型
a. 数组
特点:一个数组是由同一类型数据所组成的某 种n维矩形结构。每个元素占相同的存储空间
下标:沿着每一维的距离称为一个下标。
数组元素的命名:数组名+下标
确储定空数间组 是与 否可 确变 定数组:在编译时设方表数计法中组符,存所号需储需表要更的在多的构符的存造号信 数组元素的存储与地址的计算 息,并需要定义不
语义是指这样的一组规则,使用它可
以定义一个程序的意义。 我们采用的方法为:属性文法和基于属
性文法的语法制导翻译方法。
.
5
程序
程序语言的基 本功能是描述 数据和对数据 的运算。所谓 程序,从本质 上来说是描述 一定数据的处 理过程。
程序
子程序 或 语句
表达式
数据引用
算符
分程序
函数调用
.
6
程序设计语言的定义
程序语言主要由语法和语义两方面定义。
.
2
2.1.1 语法
所谓一个语言的语法是指这样的一组规 则,用它可以形成和产生一个合适的程 序。
这些规则一部分称为词法规则,另一部 分能称为语法规则(或产生规则)。
.
3
几个概念
a.一个语言只是用一个有限字符集作为字母表;
b.词法规则是指单词符号的形成规则。单词符号 一般包括:各类型的常数、标识符、基本字、 算符和界符等。
内情向量表:数据类型,数组的同维的数属,性下文法标以的便
变化范围,首地址
对其语义进行描述
.
18
b.记录
第二章 高级语言及其语法描述
程序设计语言的语法 程序设计语言的语义 程序设计语言的特点 程序设计语言的语法描述
.
1
2.1 程序语言的定义
任何语言实现的基础是语言的定义。 在定义方面,编译程序研制者与一般用户有
所不同
用户关心语言如何使用 开发人员关心文法的定义。他们对哪些构造允许
出现更感兴趣。即使一时不能看出某种构造的实 际应用,或者判断实现该结构会导致严重的困难, 但仍必须严格根据语言的定义实现它。
a.数值数据
b.逻辑数据
c.字符数据
d.指针类型
不同的数据类型占 存储空间不同,表 示的数的范围也不
相同
.
16
名字和标识符
标识符:无意义的符号串
名字:可以看成是代表一个抽象的存储单元
名字的值:名字所代表的单元的内容则认为是 此名字的值。
名字的属性: 一个名字的属性包括类型和作用 域。
标识符、名字与存储空间的关系:同一标识符 可以表示不同的名字;同一名字可以表示不同 的存储空间;同一存储空间可以有多个名字
条件1→动作l 条件2→动作2 条件n→动作3
.
11
2.2.1 高级语言分类
四、面向对象语言
面向对象语言如今已成为最流行、最重要的 语言。它主要的特征是支持封装性、继承性和 多态性等。把复杂的数据和用于这些数据的操 作封装在一起,构成对象;对简单对象进行扩 充、继承简单对象的特性,从而设计出复杂的 对象。通过对象的构造可以使面向对象程序获 得强制式语言的有效性,通过作用于规定数据 的函数的构造可以获得应用式语言的灵活性和 可靠性。
.
8
2.2来自百度文库1 高级语言分类
从不同的角度看,对高级程序设计语言有不同的分类方法。 如果我们从语言范型分类,当今的大多数程序设计语言可划分为四 类。
一、强制式语言
强制式语言也称过程式语言。其特点是命令驱动,面向语句。 一个强制式语言程序由一系列的语句组成,每个浯句的执行引起若 干存储单元中的值的改变。这种语言的语法形式通常具有如下形式:
C.语言的语法规则规定了如何从单词符号形成更 大的结构(即语法单位或语法范畴),换言之, 语法规则是语法单位的形成规则。一般程序语 言的语法单位有:表达式、语句、分程序、函 数、过程和程序等。
.
4
2.1.2 语义
对于一个语言来说,不仅要给出它的词 法、语法规则,而且要定义它的单词符 号和语法单位的意义。这就是语义问题。
.
9
2.2.1 高级语言分类
二、应用式语言
与强制式语言不同的是,应用式语言更注重程序所表示的 功能,而不是一个语句接一个语句地执行。程序的开发过程是 从前面已有的函数出发构造出更复杂的函数,对初始数据集进 行操作直至最终的函数可以用于从初始数据计算出最终的结果。 这种语言通常的语法形式是:
函数n(…函数2(函数1(数据))…)
因此,这种语言也称函数式语言。LISP(20 世纪 50 年代末由 麻省理工学院为研究人工智能而开发的)和ML(20世纪70年代,由 爱丁堡大学开发的一个通用的函数式编程语言)属于这种语言。
.
10
2.2.1 高级语言分类
三、基于规则的语言
基于规则的语言程序的执行过程是:检查一 定的条件,当它满足值,则执行适当的动作。 最有代表性的基于规则语言是Prolog,它也称 逻辑程序设计语言,因为它的基本允许条件是 谓词逻辑表达式。这类语言的语法形式通常为:
.
12
2.2.2 程序结构
不同程序语言都有各自的程序结构
C语言程序可以包含多个函数 Pascal 支持过程的嵌套定义 程序结构的不同,决定了符号表构造方法
的不同
.
13
Pascal 是一个允许子程序嵌套定义的语言
program main
… procedure P1; … procedure P11; … begin … end; begin … end; procedure P2; … begin … end;
建立在有限字母集之上的一个符号系统 有一定的语法和语义规则
语法规则:词法规则和语法规则 语义规则:描述语法单位的功能和含义
程序设计语言的功能是描述数据和对数 据的运算
.
7
2.2 高级语言的一般特性
2.2.1 高级语言分类 2.2.2 程序结构 2.2.3 数据类型与操作 2.2.4 语句与控制结构
begin … end
.
14
2.2.3 数据类型与操作
程序设计语言支持特定的数据类型与操作。 一个数据类型通常包括以下三种要素: a.用于区别这种类型的数据对象的属性 b.这种类型的数据对象可以具有的值 c.可以作用于这种类型数据对象的操作
.
15
一.初等数据类型(基本数据类型)
常见的初等数据类型有:
.
17
二.构造数据类型
a. 数组
特点:一个数组是由同一类型数据所组成的某 种n维矩形结构。每个元素占相同的存储空间
下标:沿着每一维的距离称为一个下标。
数组元素的命名:数组名+下标
确储定空数间组 是与 否可 确变 定数组:在编译时设方表数计法中组符,存所号需储需表要更的在多的构符的存造号信 数组元素的存储与地址的计算 息,并需要定义不
语义是指这样的一组规则,使用它可
以定义一个程序的意义。 我们采用的方法为:属性文法和基于属
性文法的语法制导翻译方法。
.
5
程序
程序语言的基 本功能是描述 数据和对数据 的运算。所谓 程序,从本质 上来说是描述 一定数据的处 理过程。
程序
子程序 或 语句
表达式
数据引用
算符
分程序
函数调用
.
6
程序设计语言的定义
程序语言主要由语法和语义两方面定义。
.
2
2.1.1 语法
所谓一个语言的语法是指这样的一组规 则,用它可以形成和产生一个合适的程 序。
这些规则一部分称为词法规则,另一部 分能称为语法规则(或产生规则)。
.
3
几个概念
a.一个语言只是用一个有限字符集作为字母表;
b.词法规则是指单词符号的形成规则。单词符号 一般包括:各类型的常数、标识符、基本字、 算符和界符等。
内情向量表:数据类型,数组的同维的数属,性下文法标以的便
变化范围,首地址
对其语义进行描述
.
18
b.记录
第二章 高级语言及其语法描述
程序设计语言的语法 程序设计语言的语义 程序设计语言的特点 程序设计语言的语法描述
.
1
2.1 程序语言的定义
任何语言实现的基础是语言的定义。 在定义方面,编译程序研制者与一般用户有
所不同
用户关心语言如何使用 开发人员关心文法的定义。他们对哪些构造允许
出现更感兴趣。即使一时不能看出某种构造的实 际应用,或者判断实现该结构会导致严重的困难, 但仍必须严格根据语言的定义实现它。
a.数值数据
b.逻辑数据
c.字符数据
d.指针类型
不同的数据类型占 存储空间不同,表 示的数的范围也不
相同
.
16
名字和标识符
标识符:无意义的符号串
名字:可以看成是代表一个抽象的存储单元
名字的值:名字所代表的单元的内容则认为是 此名字的值。
名字的属性: 一个名字的属性包括类型和作用 域。
标识符、名字与存储空间的关系:同一标识符 可以表示不同的名字;同一名字可以表示不同 的存储空间;同一存储空间可以有多个名字
条件1→动作l 条件2→动作2 条件n→动作3
.
11
2.2.1 高级语言分类
四、面向对象语言
面向对象语言如今已成为最流行、最重要的 语言。它主要的特征是支持封装性、继承性和 多态性等。把复杂的数据和用于这些数据的操 作封装在一起,构成对象;对简单对象进行扩 充、继承简单对象的特性,从而设计出复杂的 对象。通过对象的构造可以使面向对象程序获 得强制式语言的有效性,通过作用于规定数据 的函数的构造可以获得应用式语言的灵活性和 可靠性。
.
8
2.2来自百度文库1 高级语言分类
从不同的角度看,对高级程序设计语言有不同的分类方法。 如果我们从语言范型分类,当今的大多数程序设计语言可划分为四 类。
一、强制式语言
强制式语言也称过程式语言。其特点是命令驱动,面向语句。 一个强制式语言程序由一系列的语句组成,每个浯句的执行引起若 干存储单元中的值的改变。这种语言的语法形式通常具有如下形式:
C.语言的语法规则规定了如何从单词符号形成更 大的结构(即语法单位或语法范畴),换言之, 语法规则是语法单位的形成规则。一般程序语 言的语法单位有:表达式、语句、分程序、函 数、过程和程序等。
.
4
2.1.2 语义
对于一个语言来说,不仅要给出它的词 法、语法规则,而且要定义它的单词符 号和语法单位的意义。这就是语义问题。