What I cannot create, I do not understand — Richard Feynman.
This repository is me documenting, things i will be learning and building while reading The elements computing systems.This is an attempt to make a modern comptuter out of nand gates.
quoting from book:
Nand to Tetris: a hands-on journey that starts with the most elementary logic gate, called Nand, and ends up, twelve projects later, with a general purpose computer system capable of running Tetris, as well as any other program that comes to your mind. know more.
They are two ways to go about,
- Take online courses: NandToTetris Part1, and NandToTetris Part2
- Reading the book The elements of computing systems: Building a Modern Computer from First Principles
I prefer reading, so i went with the book :), and sometimes Computer Systems Design - Kamakoti | IIT Madras
Namespace Tree of the project at depth level 3.
+---nand2tetris
| +---projects
| | +---01 Boolean Logic
| | +---02 Boolean Arithmetic
| | +---03 Memory
| | +---04 Machine Language
| | +---05 Computer Architecture
| | +---06 Assembler
| | +---07 Virtual Machine 1 (processing)
| | +---08 Virtual Machine 2 (control)
| | +---09 High-Level Language
| | +---10 Compiler I: Syntax Analysis
| | +---11
| | +---12
| | +---13
| | +---demo
| +---tools
| | +---bin
| | +---builtInChips
| | +---builtInVMCode
| | +---OS
+---utils
directory nand2tetris/projects
has 12 projects(directories), each project is part of a chapter in the book.
directory nand2tetris/tools
has The Nand to Tetris Software Suite which will be used to simulate the computer.
✔️ Boolean Logic
✔️ Boolean Arithmetic
✔️ Memory
✔️ Machine Language
✔️ Computer Architecture
✔️ Assembler
Completed projects 1–6, and built a general-purpose computer system from first principles 🙌, the computer is capable of executing only programs written in machine language
✔️ Virtual Machine I: Processing
✔️ Virtual Machine II: Control
✔️ High-Level Language
✔️ Compiler I: Syntax Analysis(did not clear all tests )
❌ Compiler II: Code generation
❌ Operating System
❌ More Fun to Go