Nand2Tetris 把一台计算机拆成十二个可以亲手完成的项目。学习者从 NAND 逻辑门出发,逐步做出算术逻辑单元、CPU、汇编器、虚拟机、编译器和一个小型操作系统,最后让自己写的程序在这套计算机上运行。
这套课程适合学过一点编程,想弄清计算机底层工作方式的大学生、自学者和计算机教师。前六个项目偏硬件,后六个项目转向软件。官方材料和工具主要使用英文,学习者需要能读懂短篇技术说明与代码注释。
核心信息
| 资源类型 | 计算机系统课程与项目制学习工具 |
| 适合阶段 | 大学生、计算机专业入门者、教师与具备基础编程能力的自学者 |
| 学习内容 | 数字逻辑、计算机组成、汇编、虚拟机、编译器与操作系统 |
| 项目数量 | 十二个,前六个构建硬件,后六个构建软件 |
| 使用方式 | 官网读取项目说明,在线 IDE 直接练习,也可下载桌面工具 |
| 语言情况 | 官网、说明文档与工具界面主要为英文 |
| 免费边界 | 官网课程材料和软件免费用于非营利学习,Coursera 证书等服务可能收费 |
| 数据与隐私 | 在线 IDE 无需账号,工作文件保存在浏览器本地,重要文件应主动下载备份 |
从逻辑门搭出处理器
官方课程页把硬件部分排成六个项目。学习者先用硬件描述语言组合基本逻辑门,再做寄存器、内存和 CPU。每个项目都配有骨架文件、测试脚本与比较文件,可以反复修改,再用模拟器核对输出。
官方推荐的新工具是浏览器里的 Web IDE。下面的真实界面展示了 And16 芯片的硬件描述语言代码、输入输出引脚和测试脚本。写完一段实现后,学习者可以立即检查语法与引脚状态。

运行测试以后,IDE 会把实际输出与官方比较文件逐行核对。测试通过时,页面底部会显示成功信息。这个反馈适合处理逐步搭建时的小错误,也能帮助学习者理解某个引脚为什么得到当前结果。

怎样开始
- 先读官方课程页的 Project 1 说明,认识 NAND、NOT、AND、OR 和多路选择器,只完成当前项目要求的芯片。
- 打开官方在线 IDE,选择 Project 1,读取骨架文件与测试脚本。先做最简单的 Not 芯片,再继续组合更复杂的门。
- 每完成一个芯片就运行测试。测试失败时先看最早出现差异的输入组合,再回到代码检查引脚连接,避免一次改动很多行。
- 通过测试后下载自己的文件,并写几句话记录芯片功能与错误原因。浏览器数据被清理后,本地保存的工作可能丢失,下载备份更稳妥。
学习时怎样安排
第一次学习可以先完成前六个硬件项目,再决定是否进入软件部分。每次动手前先画出输入、输出和中间部件,随后再写硬件描述语言。测试报错时保留一份失败记录,写清哪组输入出了问题,下次会更容易定位。
教师可以把一个项目拆成阅读说明、画结构图、实现、测试和复盘几次课。自学者则适合给每个项目留出数天,不必追求一口气做完。官方明确请求学习者不要公开发布项目答案,讨论时可以讲思路和错误现象,把完整解答留在私有空间。
免费与版权边界
官方许可页说明,网站上的课程材料与工具采用知识共享署名、非商业性使用、相同方式共享 3.0 许可,可以免费用于非营利教学和自学。转载或改编材料时应保留作者与来源,继续使用相同许可,并遵守非商业限制。
官网可直接取得项目材料与工具。Coursera 等平台提供的辅导、评分或证书可能收费,购买课程配套教材也需要另付费用。Nand2Tetris 官方 Web IDE 仓库单独采用 MIT 许可,本文使用的图标与两张界面图都来自该仓库的固定版本。
使用前要知道的限制
- 课程和工具以英文为主,数字逻辑、汇编与编译器部分会出现较多专业词汇。
- 在线 IDE 仍在持续更新,官方用户指南中的个别界面可能与当前版本略有差异。
- 在线 IDE 把文件保存在浏览器本地。换设备、清理站点数据或使用无痕窗口时,应先下载文件。
- 课程使用为教学设计的 Hack 平台,能讲清计算机系统各层怎样衔接,但不会覆盖现代处理器的全部工程细节。
Project 1 是合适的起点。先完成 Not 与 And 两个芯片,跑通测试,再把它们画成一张结构图。代码、测试结果和图能互相对上时,后面的 CPU 就有了可继续搭建的基础。