This repository contains my code for implementing each of the projects from Noam Nisan's and Shimon Schocken's The Elements of Computing Systems, Second Edition.
"The Nand to Tetris journey entails twelve hardware and software construction projects. The general direction of development across these projects, as well as the book’s table of contents, imply a bottom-up journey: we start with elementary logic gates and work our way upward, leading to a high-level, object-based programming language.”
- Excerpt From The Elements of Computing Systems, Second Edition
The hardware platform is based on a set of about thirty logic gates and chips. Every one of these gates and chips, including the topmost computer architecture, will be built using a Hardware Description Language, HDL, and simulated on a software-based harware simulator.
The software stack that will include an assembler, a virtual machine, and a compiler. These can be written in any programming language.
The repo is separated into two main directories, projects
and tools
. Implemented code lives in projects
while the files contained in tools
are used to run the code.