2.程序语言基础知识
2.1 程序语言概述
2.1.1 程序语言的基本概念
1.低级语言和高级语言
- 低级语言:包括机器语言和汇编语言,是一种面向机器的语言,效率低、程序可读性很差、难以理解、难以修改和维护。
- 高级语言:面向各类应用的程序语言,功能更强、抽象级别更高,常见的有Java、C、C++、C#、Python、PHP、JavaScript等,这类语言与人们使用的自然语言比较接近,大大提高了程序设计的效率。
2.汇编、解释、编译
高级程序语言必须进行翻译才能为计算机硬件所理解,语言之间的翻译形式有多种,基本方式为汇编、解释和编译。
用某种高级语言或汇编语言编写的程序称为源程序,源程序不能直接在计算机上执行。如果源程序是用汇编语言编写的,则需要一个汇编程序将其翻译成目标程序后才能执行。如果源程序是用某种高级语言编写的,则需要对应的解释程序或编译程序对其进行翻译,然后在机器上运行。
3.编译程序和解释程序
解释程序(解释器):它或者直接解释执行源程序,或者将源程序翻译成某种中间代码后再加以执行;
编译程序(编译器):将源程序翻译成目标语言程序,然后在计算机上运行目标程序。
区别(这个是选择常考知识点):
- 编译方式下,机器上运行的是与源程序等价的目标程序,源程序与编译程序都不再参与目标程序的执行过程;
- 解释方式下,解释程序与源程序(或者某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。
- 解释方式下,翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立保存的目标程序。
编译和解释的比较:编译比解释方式可能取得更高的效率;解释方式比编译方式更灵活(解释程序需要反复检查源程序);解释方式可移植性好。
4.程序设计语言的分类
建议了解一下常用的程序语言应用场景,选择题偶尔会涉及,这里简单介绍3种。
若一种程序语言不依赖于机器硬件,则称为高级语言;若程序语言能够应用于范围广泛的问题求解领域,则称为通用的程序设计语言。
- PHP是一种在服务器端执行的、嵌入HTML文档的脚本语言,PHP可以快速地执行动态网页。
- Python是一种面向对象的解释型程序设计语言,可以用于编写独立程序、快速脚本和复杂应用的原型。
- JavaScript是一种脚本语言,被广泛用于web应用开发,常用来网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果,通常嵌入HTML使用。
2.1.2 程序语言的基本成分(★★★)
程序语言的基本成分包括:数据、运算、控制、传输。(2020年选择题考点)
1.程序语言的数据成分
- 常量和变量:变量具有左值(指存储单元:地址、容器)和右值(内容),在程序运行过程中其右值可以改变;常量只有右值,在程序运行过程中其右值不能改变。
- 全局变量和局部变量:系统为全局变量分配的存储空间在程序运行的过程中一般是不改变的,而为局部变量分配的存储单元是可以动态改变的。
- 按照数据组织形式的不同分为基本类型、用户定义类型、构造类型及其他类型,以C语言为例:
– 基本类型:int、char、float、double、bool等;
– 特殊类型:void;
– 用户定义类型:enum(枚举类型);
– 构造类型:数组、结构、联合;
– 指针类型:type *;
– 抽象数据类型:类类型。
2.程序语言的控制成分
控制成分指明语言允许表述的控制结构,程序员使用控制成分来构造程序中的控制逻辑,有顺序结构、选择结构、循环结构。
3.函数(很重要)
函数涉及3个概念:函数定义、函数声明和函数调用。
调用函数和被调用函数之间交换信息的方法主要有2种:一种是被调用函数把返回值返回给主调函数,另一种是通过参数带回信息,函数调用实参与形参间交换信息的方法有值调用和引用调用:
- 传值调用:实现函数调用时实参向形式参数传递相应类型的值,形参不能向实参传递信息(单向传递),实参可以是常量(表达式),也可以是变量(数组元素),例如:
int sum(int x, int y){
int z;
z=x+y;
return z;
}
函数调用时:sum(2,3);
- 引用调用(传地址调用):引用是C++中增加的数据类型,当形式参数为引用类型时,形参名实际上是实参的别名,函数中对形参的访问和修改实际上就是针对相应实际参数所做的访问和改变,可以实现双向传递;因此只能是变量(数组元素),而不能是常量(表达式),例如:
void swap(