计算机理论学习Day14
2.3 程序设计语言
1.程序设计语言
主要用于描述算法,也称算法语言
2.程序设计语言分类:
机器语言(低级语言,计算机可以直接识别执行)、汇编语言(低级语言)、高级语言
3.机器语言
- 机器语言就是计算机的指令系统,指令是使用二进制编码表示的
- 机器语言使用二进制代码编写,可以被计算机直接识别并执行,不需要翻译
- 机器语言编写的程序记不住、难以理解、编程效率低、不易维护,但是执行效率高
- 机器语言对机器(硬件)有依赖性、移植性比较差
- 现在已经不直接用机器语言编写程序
4.汇编语言
- 汇编语言是用助记符来表示机器指令中的操作符号与操作数
- 汇编语言是面向机器的程序设计语言(对机器仍有依赖性),属于低级语言
- 汇编语言程序操作数直接使用十进制表示,程序相对容易被理解,汇编语言编写的源程序,也不能直接被计算机运行,需要汇编语言进行编译(汇编)之后才能被执行
5.高级语言
- 高级语言(接近自然语言)容易理解,记忆和使用,降低了编程难度
- 高级语言克服汇编语言的缺陷,提高编程和维护效率
- 高级语言程序移植性好,对硬件不太依赖
- 高级程序语言对使用的符号、词汇、语法和语义等各种语言成分都有严格的规定,高级语言编写的源程序,不能直接被计算机运行,需要通过编译或解释
- 用高级程序设计语言编写的程序,需要转换成等价的可执行程序,需要经过的过程是编译和连接
6.程序设计语言基本三要素
- 语法:表示构成语言的各个记号之间的组合规律
- 语义:表示程序的各个语法成分含义,语义是程序语言中按语法规则构成的各个语法成分的含义,可分为静态语义和动态语义
- 语用:程序与使用者之间关系,与运行环境和编译环境有很大关系
7.程序设计语言的四大成分
- 数据成分:程序中所涉及的数据部分(变量、数组、结构体等,即数据名,数据类型,数据结构等)
- 运算成分:程序中所包括的运算部分(算数运算、逻辑运算、关系运算等)
- 控制成分:程序中控制构造(顺序结构、选择结构、循环结构等)
- 传输成分:程序中数据的传输(数据交换[赋值语句])、拷贝、I/O操作(输入输出库函数调用)、函数传参与返回等
8.程序的控制结构
- 顺寻控制结构:最基本、最普通的结构形式,按照程序中的语句的先后顺寻逐条执行
- 选择控制结构:单分支选择(if)、双分支选择(if-else)、多分枝选择
- 循环控制结构:for、while、do…while
9.结构化程序设计
- 结构化程序设计是面向过程的程序设计方法,按照模块划分原则以提高程序可读性、易维护性、可调性和可扩充性为目标的一种或程序设计方法
- 结构化程序设计主张使用三种基本控制结构(顺序、选择、循环)来嵌套连接成具有复杂层次的结构化程序,使用的程序易读、易修改
- 结构化程序设计四条原则:自顶向下、逐步求精、模块化、限制使用goto语句
10.面向对象程序设计
- 面向对象程序设计以对象为核心
- 面向对象程序方法的三个特征:封装、继承和多态
- 封装:对象的封装实现了信息的隐藏
- 继承:使用已有的类定义作为基础建立新类的定义技术,广义指能够直接获得已有的性质和特征,而不必重复定义它们。继承分单继承和多继承,单继承只允许有一个父类,即类等级为树状结构;多继承指一个类允许有多个父类
- 多态:是指同样的消息被不同对象接受时导致完全不同的行动现象
- 面向对象程序设计的优点:
- 人类习惯的思维方法一致;
- 稳定性好
- 可重用性好
- 易于开发大型软件产品
- 可维护性好
- 对象的三要素(对象标识、对象状态、对象行为):属性、事件、方法
- 消息及其组成
- 消息:是一个实例与另一个实例之间传递的信息。对象间的通信靠消息传递,他请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流
- 消息的组成:接收消息的对象的名称、消息标识符、也称消息名,零个或多个参数
- 属性,类和实例
- 属性:即对象所包含的信息,它在设计对象时确定,一般只能通过执行对象的操作来改变。
- 对象:由数据及操作所构成的封装体,是系统中用来描述客观事物的一个封装,也是构成系统的一个基本单位
- 类:是现实世界实体化的描述。类将实体的数据和函数封装在一起。类的数据也叫状态、属性或特征。它标识静态的一面,类的函数也叫功能、操作或服务,表现类的动态一面。是具有相似属性与操作的一组对象,类是关于对象性质的描述
- 实例:类是对象的抽象,对象是其对应类的一个实例,一个类可以由零个或多个对象,一个对象只能是一个类的实例,每个类在某个时刻都有零或更多的实例
11.程序设计语言处理
- 源程序:使用高级语言或汇编语言编写的程序称为源程序
- 目标程序:源程序->翻译程序->目标程序
- 翻译程序:将某一种语言翻译成另一种语言
- 汇编语言:汇编语言的翻译程序,属于系统软件
- 高级程序语言的翻译器:解释程序和编译程序,也属于系统软件
12.解释程序
- 解释:解释器直接解释并且执行源程序语言程序,不产生目标程序
- 解释程序:按源程序中语句的执行顺寻,逐条翻译并立即执行相应的功能的处理顺寻,解释不产生目标程序
- 解释程序的突出优点是可简单地实现,且易于在解释过程中灵活、方便地插入修改和调试措施,缺点是执行效率很低
- 适用于调试程序、交互程序等
13.编译程序
- 编译:把源程序编译为机器语言目标程序后,再由计算机运行
- 编译程序:将程序从高级语言转换到机器语言或汇编语言的翻译程序
- 编译产生目标程序,目标程序可反复被执行,运行效率高
- 适用于翻译规模大、结构复杂、运行时间长的大型应用程序
- 编译程序的处理过程:编辑->编译->链接->运行
- 编译型程序语言:c、c++
- 编译程序的功能是把某高级语言编写的源程序翻译成与之对应的目标程序(汇编语言程序或机器语言程序)编译程序的工作过程可以分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等