Retro Complete 1 min read

From Nand to Tetris

Building a modern computer from first principles — a two-part retrospective on the Nand2Tetris course
Part of GPU & Computer Architecture
Series
2 posts
Black-and-white ink illustration showing the progression from logic gates to computer hardware, binary code, and a stack of Tetris blocks, evoking the Nand2Tetris courses path from basic circuits to a working computer.

Build a Modern Computer from First Principles (opens in a new tab), better known as Nand2Tetris, is a MOOC taught by Noam Nisan and Shimon Schocken on Coursera (opens in a new tab). The course walks you through 12 projects that stack sequentially, starting from a Nand gate and ending with a working computer running a Tetris game you wrote yourself.

As a largely self-taught developer, I took this course to strengthen my computer science fundamentals (opens in a new tab). It made me a better software engineer. I wrote up each half as I went:

A Tetris Skyline by Dan Allison
From Boolean Logic Gates to an Assembler

The first half of the Nand2Tetris course: Boolean logic, arithmetic, memory, machine language, CPU architecture, and an assembler. We build the Hack computer up from Nand gates.

Self Replicating Machine by Peter J. Yost
The Hack Virtual Machine

The start of the second half of Nand2Tetris: stack machines, virtual memory segments, and a VM translator that compiles VM bytecode down to Hack assembly.

The two halves meet at the assembler. The first half ends by translating symbolic machine language into binary, and the second half picks up translating VM code into that same assembly.

Cite this write-up

Crosse, Tyler. (Mar 2022). From Nand to Tetris. tylercrosse.com. https://tylercrosse.com/ideas/2022/nand2tetris/.

@article{crosse2022from,
  title   = {From Nand to Tetris},
  author  = {Crosse, Tyler},
  journal = {tylercrosse.com},
  year    = {2022},
  month   = {Mar},
  url     = {https://tylercrosse.com/ideas/2022/nand2tetris/}
}

Except where otherwise noted, this post is licensed under a Creative Commons International (CC BY 4.0) license.