《第3章程序设计语言.ppt》由会员分享,可在线阅读,更多相关《第3章程序设计语言.ppt(50页珍藏版)》请在优知文库上搜索。
1、第第3章章 程序设计语言程序设计语言4/2/20232计算机科学导论计算机科学导论学习目标学习目标u了解计算机程序设计语言、编译原理的基本知识。了解计算机程序设计语言、编译原理的基本知识。u掌握程序的概念、高级语言程序设计的基本内容。掌握程序的概念、高级语言程序设计的基本内容。第第3章章 程序设计语言程序设计语言4/2/20233计算机科学导论计算机科学导论3.1 程序设计语言概述程序设计语言概述3.1.1 程序的概念程序的概念 程序就是能够实现特定功能的一组指令序列程序就是能够实现特定功能的一组指令序列的集合。的集合。其中,指令可以是机器指令、汇编语言其中,指令可以是机器指令、汇编语言指令,
2、也可以是高级语言的语句命令,甚至还可指令,也可以是高级语言的语句命令,甚至还可以是用自然语言描述的运算、操作命令等。以是用自然语言描述的运算、操作命令等。4/2/20234计算机科学导论计算机科学导论3.1.2 计算机程序设计语言计算机程序设计语言 程序设计语言使得人们能够与计算程序设计语言使得人们能够与计算机进行交流,其种类非常繁多,总来说可机进行交流,其种类非常繁多,总来说可以分为以分为低级语言低级语言和和高级语言高级语言两大类。两大类。4/2/20235计算机科学导论计算机科学导论u低级语言低级语言 低级语言包括两种类型:机器语言和汇编语言。低级语言包括两种类型:机器语言和汇编语言。u
3、(1) 机器语言机器语言 机器语言面向机器,可由机器语言面向机器,可由CPU直接识别和执行。不同的机直接识别和执行。不同的机器能够识别的机器语言是不相同的。器能够识别的机器语言是不相同的。 机器指令都是用一串机器指令都是用一串0、1构成的二进制位串来表示的,也构成的二进制位串来表示的,也称为机器码。称为机器码。 用机器指令编写的程序称为用机器指令编写的程序称为机器语言程序机器语言程序,或称为目标程,或称为目标程序,这是计算机能够直接执行的程序。序,这是计算机能够直接执行的程序。缺点:缺点:机器语言难以阅读和理解,编写和修改都比较困难,机器语言难以阅读和理解,编写和修改都比较困难, 而且通用性较
4、差。而且通用性较差。3.1.2 计算机程序设计语言计算机程序设计语言4/2/20236计算机科学导论计算机科学导论u(2) 汇编语言汇编语言 汇编指令是由英文单词或其缩写符号表示的指令。也称汇编指令是由英文单词或其缩写符号表示的指令。也称为符号指令或助记符,比机器指令便于记忆、阅读和理为符号指令或助记符,比机器指令便于记忆、阅读和理解。解。 大多数情况下,一条汇编指令直接对应一条机器指令,大多数情况下,一条汇编指令直接对应一条机器指令,少数对应几条机器指令。少数对应几条机器指令。 汇编语言,也称符号语言,它使用字母、数字和英文单汇编语言,也称符号语言,它使用字母、数字和英文单词或其缩写符号来替
5、代由词或其缩写符号来替代由0、1构成的指令操作码、寄构成的指令操作码、寄存器、数据和地址等信息,这样编写出来的程序就称为存器、数据和地址等信息,这样编写出来的程序就称为符号语言程序或汇编语言程序符号语言程序或汇编语言程序。3.1.2 计算机程序设计语言计算机程序设计语言4/2/20237计算机科学导论计算机科学导论u汇编与汇编程序汇编与汇编程序 计算机无法计算机无法“识别识别”和和“执行执行”汇编语言,因而需要能将汇编语言,因而需要能将用汇编语言编写的程序用汇编语言编写的程序“翻译翻译”成机器语言的特殊程序。成机器语言的特殊程序。 这种特殊程序称为这种特殊程序称为汇编语言翻译程序、汇编程序或汇
6、编器汇编语言翻译程序、汇编程序或汇编器。 程序员手工编写的程序统称为程序员手工编写的程序统称为源程序源程序,用汇编语言编写的,用汇编语言编写的源程序称为源程序称为汇编语言源程序汇编语言源程序,汇编程序将源程序翻译得到,汇编程序将源程序翻译得到的机器语言程序称为的机器语言程序称为目标程序目标程序,翻译的过程称为,翻译的过程称为汇编汇编。3.1.2 计算机程序设计语言计算机程序设计语言4/2/20238计算机科学导论计算机科学导论 反汇编程序反汇编程序用于将目标代码程序转换成相应的汇编语言源用于将目标代码程序转换成相应的汇编语言源程序,这一过程称为反汇编。反汇编主要用于识别源程序程序,这一过程称为
7、反汇编。反汇编主要用于识别源程序代码,常用的调试工具程序代码,常用的调试工具程序DEBUG就提供了反汇编功能就提供了反汇编功能。3.1.2 计算机程序设计语言计算机程序设计语言4/2/20239计算机科学导论计算机科学导论u低级语言的特点低级语言的特点 都与特定的计算机硬件系统紧密相关,来自于特定系统都与特定的计算机硬件系统紧密相关,来自于特定系统的指令系统,的指令系统,可移植性差可移植性差。 对程序员对程序员专业知识专业知识要求高要求高,要求对计算机硬件的结构和,要求对计算机硬件的结构和工作原理非常熟悉。工作原理非常熟悉。 每条指令的功能比较单一,程序员编写源程序时指令每条指令的功能比较单一
8、,程序员编写源程序时指令非非常繁琐常繁琐。 由于直接针对特定硬件编程,所以最终的可执行代码非由于直接针对特定硬件编程,所以最终的可执行代码非常精炼,并且常精炼,并且执行效率高执行效率高。 两者主要的区别在于:机器语言编写的程序无需两者主要的区别在于:机器语言编写的程序无需翻译或编译,翻译或编译,CPU能够直接识别和执行。而汇编语言源能够直接识别和执行。而汇编语言源程序必须经过汇编才能得到目标程序。程序必须经过汇编才能得到目标程序。3.1.2 计算机程序设计语言计算机程序设计语言4/2/202310计算机科学导论计算机科学导论u高级语言高级语言 (1) 高级语言的产生高级语言的产生 一个问题:如
9、何一个问题:如何解决程序的可移植性解决程序的可移植性,即:程序员编,即:程序员编写的源程序如何可以从一台计算机很容易地转到另一写的源程序如何可以从一台计算机很容易地转到另一台计算机上工作。台计算机上工作。 所谓高级语言是一种由表达各种意义的所谓高级语言是一种由表达各种意义的“词词”和和“公公式式”,按照一定的,按照一定的“语法规则语法规则”来编写程序的语言,来编写程序的语言,又称为程序设计语言或算法语言。又称为程序设计语言或算法语言。 高级语言之所以高级语言之所以“高级高级”,就是因为它使程序员可以,就是因为它使程序员可以完全不用与计算机的硬件打交道,可以完全不用与计算机的硬件打交道,可以不必
10、了解机器不必了解机器的指令系统的指令系统。 3.1.2 计算机程序设计语言计算机程序设计语言4/2/202311计算机科学导论计算机科学导论u(2) 高级语言的常见类型高级语言的常见类型FORTRAN语言语言BASIC语言语言COBOL语言语言PASCAL语言语言C语言语言C+和和C语言语言其他高级语言其他高级语言 基于视窗类操作系统的,如基于视窗类操作系统的,如Visual Basic、Visual C+、Delphi、Power Builder、Java等等3.1.2 计算机程序设计语言计算机程序设计语言4/2/202312计算机科学导论计算机科学导论u高级语言的优点高级语言的优点: 语句
11、的语句的功能强功能强,程序员编写的,程序员编写的源程序比较短源程序比较短,容,容易学易学习,使用习,使用方便方便,可移植性可移植性较较好好,便于推广和交流。,便于推广和交流。u高级语言的缺点高级语言的缺点: 编译程序比汇编程序复杂,而且编译出来的目标程序编译程序比汇编程序复杂,而且编译出来的目标程序往往往往效率不高效率不高,长度和运行时间都较长。,长度和运行时间都较长。 因此,在很多对时间要求比较高的系统,如某些实时因此,在很多对时间要求比较高的系统,如某些实时控制系统或者大型计算机控制系统中,低级语言(主控制系统或者大型计算机控制系统中,低级语言(主要是汇编语言)仍然得到了一定的应用。要是汇
12、编语言)仍然得到了一定的应用。3.1.2 计算机程序设计语言计算机程序设计语言4/2/202313计算机科学导论计算机科学导论3.1.3 高级语言程序设计的基本内容高级语言程序设计的基本内容高级语言程序设计依赖于各自特定的语句和语法。高级语言程序设计依赖于各自特定的语句和语法。语句是构成源程序的基本单位。语句是构成源程序的基本单位。语法是指管理语言结构和语句的一组规则。语法是指管理语言结构和语句的一组规则。4/2/202314计算机科学导论计算机科学导论1高级语言的基本符号高级语言的基本符号 高级语言的语法成分都是由基本符号组成的,分为单字高级语言的语法成分都是由基本符号组成的,分为单字符和多
13、字符两种。符和多字符两种。单字符基本符号单字符基本符号由单个字符组成。由单个字符组成。 字母字母:英文字母:英文字母AZ、az,共,共52个符号。个符号。 数字数字:09,共,共10个数字符号。个数字符号。 特殊字符特殊字符:+ 、-、*、/、=、(、)、,、空格等。、,、空格等。 多字符基本符号多字符基本符号由两个或两个以上的字符组成,如:由两个或两个以上的字符组成,如: GOTO(转移转移)、(小于或等于小于或等于)、AND(与与)等。等。3.1.3 高级语言程序设计的基本内容高级语言程序设计的基本内容4/2/202315计算机科学导论计算机科学导论2高级语言的基本元素高级语言的基本元素
14、基本元素由基本符号组成,可分为数、逻辑基本元素由基本符号组成,可分为数、逻辑值、名字、标号和字符串等值、名字、标号和字符串等5大类:大类:数:数:由由09共共10个基本数字和其他一些符号个基本数字和其他一些符号(如小如小数点数点“.”、正负号、正负号“、”及指数符号及指数符号“E”等等所构成。所构成。逻辑值:逻辑值:由真由真(True)和假和假(False)两个值构成。两个值构成。3.1.3 高级语言程序设计的基本内容高级语言程序设计的基本内容4/2/202316计算机科学导论计算机科学导论 名字名字 由字符组成,一般约定名字的开头是字母由字符组成,一般约定名字的开头是字母或者下划线,其后可为
15、字母或数字,如或者下划线,其后可为字母或数字,如XYZ、A123、_C等。名字可用来定义常量、变量、函等。名字可用来定义常量、变量、函数、过程或子程序的名字,故也称为标识符。数、过程或子程序的名字,故也称为标识符。标号标号 是在高级语言中的程序语句前所加的一个是在高级语言中的程序语句前所加的一个名字,主要用来指示程序可能的转移方向。名字,主要用来指示程序可能的转移方向。字符串字符串 由一串字符所组成。字符串中的多个字符由一串字符所组成。字符串中的多个字符常放在一对单引号或双引号中,作为常量来使用。常放在一对单引号或双引号中,作为常量来使用。3.1.3 高级语言程序设计的基本内容高级语言程序设计
16、的基本内容4/2/202317计算机科学导论计算机科学导论3基本的数据类型基本的数据类型 通常,一种高级语言都会定义一些基本的数据类型,通常通常,一种高级语言都会定义一些基本的数据类型,通常包括整数类型、实数类型和字符类型等。包括整数类型、实数类型和字符类型等。 高级语言中,在使用变量前,必须为每个变量分配所需的高级语言中,在使用变量前,必须为每个变量分配所需的内存单元空间。因此,几乎任何一种高级语言都要求内存单元空间。因此,几乎任何一种高级语言都要求变量变量必须先定义后使用必须先定义后使用。 定义变量实质上就是根据变量的类型来为其分配一定大小定义变量实质上就是根据变量的类型来为其分配一定大小的空间,并可通过变量名找到该空间的起始地址。的空间,并可通过变量名找到该空间的起始地址。3.1.3 高级语言程序设计的基本内容高级语言程序设计的基本内容4/2/202318计算机科学导论计算机科学导论4结构数据类型结构数据类型 结构数据类型是在基本数据类型的基础上构结构数据类型是在基本数据类型的基础上构造出来的数据类型。如数组、结构体、枚举、集造出来的数据类型。如数组、结构体、枚举、集合、队列和堆