A2-2.3.1
程序设计语言的分类。
程序设计语言的三代演进对比(专转本高频考点)
必记第一代:机器语言
- 代码形式与特征
- 全部由二进制“0”和“1”代码组成的机器指令
- 计算机是否可直接识别执行
- 计算机硬件唯一能够直接识别并执行的语言
- 优缺点与可移植性
- 执行效率最高,但极其晦涩繁琐、难读易错,完全依赖具体硬件无移植性
第二代:汇编语言
- 代码形式与特征
- 使用助记符(如 MOV, ADD, JMP)代替二进制指令代码
- 计算机是否可直接识别执行
- 不能直接执行,必须经过“汇编程序”翻译成机器语言目标程序后执行
- 优缺点与可移植性
- 直接控制底层硬件引脚,执行效率极高,但依然依赖特定 CPU 架构指令集
第三代:高级语言
- 代码形式与特征
- 接近人类自然语言(英语)与数学公式的表达形式
- 计算机是否可直接识别执行
- 不能直接执行,必须经过“编译”或“解释”程序翻译后才能执行
- 优缺点与可移植性
- 易学、易读、易维护,摆脱硬件依赖具有优良的可移植性(如 C, Java, Python)
| 语言演进阶段 | 代码形式与特征 | 计算机是否可直接识别执行 | 优缺点与可移植性 |
|---|---|---|---|
| 第一代:机器语言 | 全部由二进制“0”和“1”代码组成的机器指令 | 计算机硬件唯一能够直接识别并执行的语言 | 执行效率最高,但极其晦涩繁琐、难读易错,完全依赖具体硬件无移植性 |
| 第二代:汇编语言 | 使用助记符(如 MOV, ADD, JMP)代替二进制指令代码 | 不能直接执行,必须经过“汇编程序”翻译成机器语言目标程序后执行 | 直接控制底层硬件引脚,执行效率极高,但依然依赖特定 CPU 架构指令集 |
| 第三代:高级语言 | 接近人类自然语言(英语)与数学公式的表达形式 | 不能直接执行,必须经过“编译”或“解释”程序翻译后才能执行 | 易学、易读、易维护,摆脱硬件依赖具有优良的可移植性(如 C, Java, Python) |
低级语言 vs 高级语言
必记易错陷阱
专转本单选常考:机器语言和汇编语言统称为“低级语言”(面向机器的语言);高级语言与具体计算机硬件解耦,属于面向过程或面向对象的语言。
随堂自测(3 题 · 共 225 道关联题)展开作答
机器语言就是__________
CPU唯一“认识”的“语言”是____________,任何程序的运行最终都是由CPU一条一条地执行它来完成的。
计算机硬件唯一认识的语言是_________。
A2-2.3.2
程序设计语言的组成。
程序设计语言的四大基本成分
必记| 语言基本成分 | 核心定义与职责 | 具体语法要素举例 |
|---|---|---|
| 1. 数据成分 | 用于描述程序所操作的数据对象及其取值范围 | 基本数据类型(int, float, char)、复合数组、结构体、类对象 |
| 2. 运算成分 | 用于描述对数据所执行的各种操作运算 | 算术运算符(+ - * / %)、关系比较符(>、<、等于)、逻辑运算(&& || !) |
| 3. 控制成分 | 用于控制程序中各语句的执行顺序与逻辑走向 | 条件分支语句(if-else, switch)、循环迭代语句(for, while)、跳转语句 |
| 4. 传输成分 | 用于描述程序与外部环境或设备之间的数据交互 | 标准输入输出库函数(printf, scanf, cin, cout, 文件 I/O) |
程序语言的三大理论要素
重点- 语法(Syntax):由字符构成合法程序句子的规则集合(程序的外部形式外观结构)
- 语义(Semantics):语法正确的程序语句所表达的具体操作含义与计算行为
- 语用(Pragmatics):程序与其使用者、应用上下文之间的关联与实际效用
随堂自测(3 题 · 共 112 道关联题)展开作答
有字符串常量 “s###”,则字符串在内存中占用 5 个字节存储单元。
以下关于 long、int 和 short 类型数据占用内存大小的叙述中正确的是____。
关于计算机程序的下列叙述中,错误的是
A2-2.3.3
程序的控制结构。
结构化程序设计三大基本控制结构(必须牢记)
必记顺序结构(Sequential)
- 逻辑流程特征
- 各语句严格按照书写的前后先后顺序自顶向下依次执行
- 核心语法关键词
- 默认连续代码行
- 统一规范约束
- 每个基本结构都具有严格的“单入口、单出口”
选择结构(Selection / 分支)
- 逻辑流程特征
- 依据给定的逻辑判断条件是否成立,决定选择执行不同的分支路径
- 核心语法关键词
if ... else .../switch ... case ...- 统一规范约束
- 任一分支执行完毕均汇合于唯一出口
循环结构(Repetition / 迭代)
- 逻辑流程特征
- 在给定循环控制条件满足时,重复执行某一段循环体代码
- 核心语法关键词
for/while/do ... while- 统一规范约束
- 必须存在使循环条件终止的语句,严防死循环
| 控制结构名称 | 逻辑流程特征 | 核心语法关键词 | 统一规范约束 |
|---|---|---|---|
| 顺序结构(Sequential) | 各语句严格按照书写的前后先后顺序自顶向下依次执行 | 默认连续代码行 | 每个基本结构都具有严格的“单入口、单出口” |
| 选择结构(Selection / 分支) | 依据给定的逻辑判断条件是否成立,决定选择执行不同的分支路径 | if ... else ... / switch ... case ... | 任一分支执行完毕均汇合于唯一出口 |
| 循环结构(Repetition / 迭代) | 在给定循环控制条件满足时,重复执行某一段循环体代码 | for / while / do ... while | 必须存在使循环条件终止的语句,严防死循环 |
Bohm-Jacopini 结构化定理
必记易错陷阱
计算机理论经典定理:任何复杂的程序算法,都可以且仅由“顺序、选择、循环”这三种基本控制结构嵌套组合而成。严格限制 goto 随意跳转语句的使用以保证程序逻辑清晰。
随堂自测(3 题 · 共 68 道关联题)展开作答
提供用户与计算机之间接口的是____,程序设计的三种基本控制结构是顺序结构、____结构和____结构。
程序的三种基本控制结构的共同特点是( )。
程序的三种基本控制结构的共同特点是()。
A2-2.3.4
源程序执行方式。
高级语言源程序两大翻译执行方式:编译 vs 解释(必考大题)
必记| 对比项 | 编译方式(Compilation) | 解释方式(Interpretation) |
|---|---|---|
| 工作流程机制 | 先将整份源程序完整翻译成机器语言的目标代码(.obj),再经链接器链接成可执行文件(.exe)后脱离源程序独立运行 | 边解释边执行:读入一句源代码 -> 词法语法翻译成机器指令 -> 立即直接执行该句 -> 再读下一句 |
| 是否生成目标文件 | 生成独立的目标文件(.obj / .exe) | 绝对不生成任何独立的中间目标文件 |
| 执行运行速度 | 执行速度极快(接近原生硬件速度) | 执行速度较慢(每次重新运行都要重新翻译一遍) |
| 跨平台与调试修改 | 跨平台差(需针对不同操作系统与架构重新编译);修改一次必须全部重新编译 | 跨平台优异(只要有对应的解释器虚拟机即可“一次编写处处解释”),逐句单步交互调试极为方便 |
| 代表编程语言 | C, C++, Go, Rust, Fortran | Python, JavaScript, PHP, Shell, Ruby |
Java 语言的特殊混合执行模式
必记易错陷阱
专转本必考题:Java 语言采取“先编译、后解释”的混合模式:先通过 javac 编译器将 Java 源文件(.java)编译为与平台无关的字节码文件(.class);然后在不同操作系统上由 Java 虚拟机(JVM)逐句解释执行或 JIT 即时编译执行,实现“一次编写,到处运行(Write Once, Run Anywhere)”
随堂自测(3 题 · 共 199 道关联题)展开作答
由汇编语言编写的源程序要转换成计算机能直接执行的目标程序,首先必须经过____
用户用计算机高级程序设计语言编写的程序,通常称为____。
高级语言的翻译过程有两种形式,即编译和____。
A2-2.3.5
常用程序设计语言。
常用主流程序设计语言特性全览
必记C 语言
- 范式类型
- 面向过程
- 核心技术特性
- 简洁高效、允许直接访问物理硬件与指针操作,跨平台性能天花板
- 典型应用领域
- 操作系统内核、嵌入式硬件开发、驱动程序
C++
- 范式类型
- 多范式(面向对象/泛型)
- 核心技术特性
- 在 C 语言基础上扩充面向对象类机制、STL 模板库,极致运行性能
- 典型应用领域
- 游戏引擎开发、图形图像渲染、底层高性能中间件
Java
- 范式类型
- 纯面向对象
- 核心技术特性
- 垃圾自动回收(GC)、强类型安全、跨平台 JVM 虚拟机
- 典型应用领域
- 企业级大型分布式系统后台、Android 移动开发
Python
- 范式类型
- 多范式动态脚本语言
- 核心技术特性
- 语法极其优雅简洁、库生态极度庞大强大(胶水语言)
- 典型应用领域
- 人工智能与深度学习、大数据分析、科学计算、自动化测试
JavaScript
- 范式类型
- 基于原型对象的动态脚本
- 核心技术特性
- 事件驱动、非阻塞异步 I/O,浏览器端唯一的原生脚本语言
- 典型应用领域
- Web 前端交互开发、Node.js 全栈服务端
| 编程语言 | 范式类型 | 核心技术特性 | 典型应用领域 |
|---|---|---|---|
| C 语言 | 面向过程 | 简洁高效、允许直接访问物理硬件与指针操作,跨平台性能天花板 | 操作系统内核、嵌入式硬件开发、驱动程序 |
| C++ | 多范式(面向对象/泛型) | 在 C 语言基础上扩充面向对象类机制、STL 模板库,极致运行性能 | 游戏引擎开发、图形图像渲染、底层高性能中间件 |
| Java | 纯面向对象 | 垃圾自动回收(GC)、强类型安全、跨平台 JVM 虚拟机 | 企业级大型分布式系统后台、Android 移动开发 |
| Python | 多范式动态脚本语言 | 语法极其优雅简洁、库生态极度庞大强大(胶水语言) | 人工智能与深度学习、大数据分析、科学计算、自动化测试 |
| JavaScript | 基于原型对象的动态脚本 | 事件驱动、非阻塞异步 I/O,浏览器端唯一的原生脚本语言 | Web 前端交互开发、Node.js 全栈服务端 |
语言地位考点
重点复习提示
UNIX 操作系统的 90% 以上内核源码是由 C 语言重写的;面向对象编程的三大基石为封装、继承、多态
随堂自测(3 题 · 共 98 道关联题)展开作答
C++语言运行性能高,且与 C 语言兼容,已成为当前主流的面向_____的程序设计语言之一。
JAVA 是一种适用于___________环境的程序设计语言。
Java 语言是一种面向_________的,适用于网络环境的程序设计语言。