Nisan and Schocken
Nand2Tetris
The Elements of Computing Systems
课程概览
课程的价值在于纵向贯通,而非覆盖每个领域的工业级细节。12 个项目分为硬件与软件两部分,适合边做边记录每层接口与不变量。
学习目标
- 理解抽象层次如何从逻辑门连接到软件
- 实现处理器、汇编器、虚拟机、编译器与操作系统部件
使用语言:HDL、Java-like language
主要主题
- 布尔逻辑与算术
- 内存与计算机体系结构
- 机器语言与汇编器
- 虚拟机与编译器
- 操作系统与应用
官方与学习资源
学习建议
- 先完成硬件部分,再进入 VM 和编译器,不要跳过接口测试。
- 每个项目留一个最小测试集,方便定位跨层错误。
可选实践
- 在完成课程项目后,独立添加一个小型指令或语言特性并写测试。