跳到正文

第1章学习笔记:信息表示与机器边界

课程笔记

沿程序真实运行路径学习信息表示与机器边界,始终区分抽象接口、实现状态和可观测证据。

关联:章节 第1章 信息表示与机器边界

第1章笔记:信息表示与机器边界

本章要解决的问题

沿程序真实运行路径学习信息表示与机器边界,始终区分抽象接口、实现状态和可观测证据。 本章七课是一条连续推理链,不是七个标题。先确定上一课输出怎样成为下一课输入,再记录对象、事件、状态和证据。

七课连接

  • 位、字节与十六进制:关系 value=\sum b_i2^i;练习为为《位、字节与十六进制》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 value=\sum b_i2^i 复算关键量;边界为不能把《位、字节与十六进制》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:这是课程起点;下一节继续使用本节产生的位模式。
  • 无符号整数与模运算:关系 x\bmod2^w;练习为为《无符号整数与模运算》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 x\bmod2^w 复算关键量;边界为不能把《无符号整数与模运算》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《补码与有符号溢出》。
  • 补码与有符号溢出:关系 -2^{w-1}\le x<2^{w-1};练习为为《补码与有符号溢出》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 -2^{w-1}\le x<2^{w-1} 复算关键量;边界为不能把《补码与有符号溢出》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《移位、掩码与字段》。
  • 移位、掩码与字段:关系 field=(x\gg s)\&mask;练习为为《移位、掩码与字段》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 field=(x\gg s)&mask 复算关键量;边界为不能把《移位、掩码与字段》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《字符、字节序与对齐》。
  • 字符、字节序与对齐:关系 address\bmod alignment;练习为为《字符、字节序与对齐》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 address\bmod alignment 复算关键量;边界为不能把《字符、字节序与对齐》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《IEEE 754与舍入》。
  • IEEE 754与舍入:关系 (-1)^s(1.f)2^{e-bias};练习为为《IEEE 754与舍入》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 (-1)^s(1.f)2^{e-bias} 复算关键量;边界为不能把《IEEE 754与舍入》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《位级数据取证实验》。
  • 位级数据取证实验:关系 bytes\to typed\ value;练习为为《位级数据取证实验》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 bytes\to typed\ value 复算关键量;边界为不能把《位级数据取证实验》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《对象、地址与指针》。

章内学习法

先闭卷画一条最短执行轨迹,再为每个箭头标主体和所属层;随后逐式复算,运行本章代码实验四组测试,并增加一个越界、权限、冲突、乱序或故障输入。只要实际值与模型不同,就保存首个偏差,不用后续噪声替代根因。

错题与复习

把错误归入分层混淆、位宽/单位、状态跳步、事件顺序、权限遗漏、并发交错、故障恢复或观察窗八类。一周后更换参数重做阶段卷;能向同学从现象讲到机制、公式、实验和边界,才算学会。