Skip to content
难度基础(★)
建议时长45分钟

17.1.1 程序设计语言概述

程序设计语言是人与计算机之间的约定:人用它描述计算过程,机器通过语言处理程序把这些描述转成可执行的动作。课程里反复强调“机器真正认识的是二进制指令”,这是理解本章的起点。

语言层次

层次表达方式优点缺点典型考点
机器语言二进制指令机器可直接执行,效率高难写、难读、依赖机器“可直接执行”的语言
汇编语言助记符表示机器指令比机器语言易读,仍能控制硬件细节依赖具体机器,需要汇编“助记符”基本指向汇编
高级语言接近自然语言和数学表达可读性、可移植性、开发效率高需要编译或解释C、Java、Python 等

为什么需要语言处理程序

高级语言写出来的是源程序,源程序本身不是 CPU 能直接执行的指令序列。语言处理程序的任务就是在“人能理解的表达”和“机器能执行的指令”之间架桥。

mermaid
flowchart LR
  A["高级语言源程序"] --> B["语言处理程序"]
  B --> C["目标程序或运行动作"]
  C --> D["机器执行"]

这里的“处理”有两条主要路线:编译和解释。编译偏向先整体翻译再执行,解释偏向运行时边处理边执行。它们的差别会在下一节展开。

低级与高级,不是好坏而是抽象层次

低级语言更接近机器,所以程序员能直接关心寄存器、地址、指令和硬件约束。高级语言更接近问题本身,程序员可以用变量、函数、对象、数据结构来表达业务逻辑。技术迭代的方向大多是提高抽象层次,但抽象越高,运行时、编译器或虚拟机就要承担更多工作。

方向为什么出现代价
机器语言 -> 汇编语言二进制太难记,用助记符提高可读性仍然强依赖硬件
汇编语言 -> 高级语言大型程序需要可维护、可移植、可复用需要编译/解释,底层控制变间接
高级语言 -> 脚本/托管语言更重视开发效率、跨平台和生态性能、运行环境依赖可能增加

考试怎么考

看到“二进制指令、机器可直接执行”,优先判断为机器语言。看到“助记符”,优先判断为汇编语言。看到“源程序需要翻译/解释”,一般在考高级语言与语言处理程序的关系。

小练习

题:高级语言程序为什么通常不能被 CPU 直接执行?

答:高级语言源程序是面向人的符号化描述,CPU 只能执行特定机器指令,需要通过编译程序或解释程序转换为机器可执行的形式或运行动作。

自查

  1. “可移植性更好”为什么通常对应高级语言?
  2. 汇编语言为什么比机器语言好写但仍然依赖机器?
  3. 语言处理程序在本章后续编译流程中扮演什么角色?