Skip to content

The Elements of Computing Systems

Related to the course from-nand-to-tetris-part-1.

Resources

Modules

Structure of the book

Starting with the construction of elementary logic gates (chapter 1), we go bottom-up to combinational and sequential chips (chapters 2-3), through the design of a typical computer architecture (chapters 4-5) and a typical software hierarchy (chapters 6-8), all the way to implementing a compiler (chapters 10-11) for a modern object-based language (chapter 9), ending with the design and implementation of a simple operating system (chapter 12).

Checklist

  • Preface
  • Introduction
  • Chapter 1 - Boolean Logic
    • 1.1 Background
    • 1.2 Specification
    • 1.3 Implementation
    • 1.4 Perspective
    • 1.5 Project
  • Chapter 2 - Boolean Arithmetic
    • 2.1 Background
    • 2.2 Specification
    • 2.3 Implementation
    • 2.4 Perspective
    • 2.5 Project
  • Chapter 3 - Sequential Logic
    • 3.1 Background
    • 3.2 Specification
    • 3.3 Implementation
    • 3.4 Perspective
    • 3.5 Project
  • Chapter 4 - Machine Language
    • 4.1 Background
    • 4.2 Hack Machine Language Specification
    • 4.3 Perspective
    • 4.4 Project
  • Chapter 5 - Computer Architecture
    • 5.1 Background
    • 5.2 The Hack Hardware Platform Specification
    • 5.3 Implementation
    • 5.4 Perspective
    • 5.5 Project
  • Chapter 6 - Assembler
  • 6.1 Background
    • 6.2 Hack Assembly-to-Binary Translation Specification
    • 6.3 Implementation
    • 6.4 Perspective
    • 6.5 Project
  • Chapter 7 - Virtual Machine I: Stack Arithmetic
    • 7.1 Background
    • 7.2 VM Specification, Part I
    • 7.3 Implementation
    • 7.4 Perspective
    • 7.5 Project
  • Chapter 8 - Virtual Machine II: Program Control
    • 8.1 Background
    • 8.2 VM Specification, Part II
    • 8.3 Implementation
    • 8.4 Perspective
    • 8.5 Project
  • Chapter 9 - High-Level Language
    • 9.1 Background
    • 9.2 The Jack Language Specification
    • 9.3 Writing Jack Applications
    • 9.4 Perspective
    • 9.5 Project
  • Chapter 10 - Compiler I: Syntax Analysis
    • 10.1 Background
    • 10.2 Specification
    • 10.3 Implementation
    • 10.4 Perspective
    • 10.5 Project
  • Chapter 11 - Compiler II: Code Generation
    • 11.1 Background
    • 11.2 Specification
    • 11.3 Implementation
    • 11.4 Perspective
    • 11.5 Project
  • Chapter 12 - Operating System
    • 12.1 Background
    • 12.2 The Jack OS Specification
    • 12.3 Implementation
    • 12.4 Perspective
    • 12.5 Project
  • Chapter 13 - Postscript: More Fun to Go
    • 13.1 Hardware Realizations
    • 13.2 Hardware Improvements
    • 13.3 High-Level Languages
    • 13.4 Optimizations
    • 13.5 Communications