Nand2Tetris

課程概述

Nand2Tetris(The Elements of Computing Systems)由 Noam Nisan 和 Shimon Schocken 開發,從最基礎的 NAND 閘開始,逐步建構出完整電腦系統,包含硬體平台、虛擬機器、編譯器和作業系統。採用專案式學習,讓學習者全面理解計算機系統的每個層次。

完整堆疊

  1. 硬體 — NAND → ALU → CPU → 完整電腦
  2. 組譯 — 機器碼 → 組合語言(Hack 指令集)
  3. 虛擬機器 — 組合語言 → VM 指令
  4. 高階語言 — VM → Jack 語言
  5. 編譯器 — Jack → VM
  6. 作業系統 — 基本服務和標準庫

12 個專案

第一部分(硬體):布林邏輯、布林運算、記憶體、機器語言、電腦架構、組譯器。第二部分(軟體):虛擬機器 I/II、編譯器 I/II、作業系統。

每個專案都建立在上一專案基礎上,最終產出一台可執行 Tetris 的完整電腦。

本課程範例

相關連結