- 本章不再引入新概念
- 遇到忘记的名词,可以按从机器到语言的顺序回来查找
程序已经从一串比特,变成了人能轻松书写的语言。最后把一路用过的名字收进工具箱,方便以后回来翻找。
| 术语 | 一句话解释 |
| 机器码 | 机器真正执行的二进制指令 |
| 助记符 | 给操作码起的短名字,如 LOAD、ADD |
| 汇编语言 | 用助记符和名字书写机器指令的语言 |
| 汇编器 | 把汇编翻译成机器码的程序 |
| 标签 | 给地址起的名字,常用于数据或跳转目标 |
| 符号表 | 记录每个名字对应哪个地址的对照表 |
| 前向引用 | 先使用、后定义的名字 |
| 两遍扫描 | 第一遍登记符号与地址,第二遍翻译并回填 |
| 目标文件 | 汇编后产出的文件,含机器码、符号表和待补齐的位置 |
| 重定位 | 链接时给符号定下最终地址并补齐引用 |
| 术语 | 一句话解释 |
| 高级语言 | 只描述问题、不安排机器细节的编程语言 |
| 变量 | 给一块存储起的名字 |
| 类型 | 规定一块存储占多大、怎样解释、能做哪些运算 |
| 表达式 | 由变量、常量和运算符组成的算式 |
| 优先级 | 决定表达式先算哪一部分的规则 |
| 运算树 | 把表达式拆成树状的先后计算顺序 |
| 临时变量 | 暂存表达式中间结果的变量 |
| 控制结构 | 顺序、选择、循环三种安排步骤的方式 |
| 比较 | 做一次减法、只记录标志而不保存结果 |
| 条件跳转 | 根据状态标志决定是否改变 PC 的跳转 |
| 术语 | 一句话解释 |
| 函数 | 把一段工作命名打包、可按需调用的代码 |
| 参数 | 调用函数时传入的输入 |
| 返回值 | 函数交还给调用者的输出 |
| 函数调用 | 传参、跳入函数、执行、再返回的过程 |
| 栈 | 后进先出的一段存储 |
| 栈帧 | 一次调用对应的参数、局部变量和返回地址 |
| 栈指针(SP) | 指向栈顶的寄存器 |
| CALL / RET | 压入返回地址并跳入 / 弹出返回地址并返回 |
| 递归 | 函数调用自身 |
| 栈溢出 | 调用太深,超出栈空间 |
| 术语 | 一句话解释 |
| 代码区 | 存放指令、通常只读的内存区域 |
| 数据区 | 存放全局变量和常量的内存区域 |
| 堆 | 运行时按需申请和释放的内存区域 |
| 栈(内存区) | 存放函数调用、自动分配回收的内存区域 |
| 全局变量 | 在函数之外定义、程序全程存活的数据 |
| 局部变量 | 在函数内部定义、随调用产生和消失的数据 |
| 动态内存 | 程序运行中主动申请、需自行释放的内存 |
| 术语 | 一句话解释 |
| 编译器 | 把高级语言翻译成汇编或机器码的程序 |
| 链接器 | 合并多个目标文件与库、完成重定位的程序 |
| 可执行文件 | 链接完成后、可直接加载运行的文件 |
| 加载 | 把可执行文件装进内存并开始执行 |
| 编译 | 运行之前把整个程序翻译成机器码 |
| 解释 | 由解释器边读程序边执行 |
| 字节码 | 与具体机器无关的一种简化指令 |
| 虚拟机 | 解释执行字节码的软件 |
| 即时编译(JIT) | 运行时把热点代码翻译成本地机器码 |
| 操作系统 | 统一管理硬件资源、为程序提供服务的软件 |
| 裸机 | 没有操作系统、程序直接运行的硬件 |
- 从汇编、高级语言、函数到程序构建的核心术语
- 名词的顺序,也大致是程序从机器走向人的顺序
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
设计师 | 南国微雪