Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ishwar00/nandtotetris
Documenting my attempt to make a modern computer out of Nand logic gates
https://github.com/ishwar00/nandtotetris
assembler compiler educational-project golang nand2tetris nandtotetris operating-system virtual-machine
Last synced: 12 days ago
JSON representation
Documenting my attempt to make a modern computer out of Nand logic gates
- Host: GitHub
- URL: https://github.com/ishwar00/nandtotetris
- Owner: ishwar00
- Created: 2022-03-13T02:24:19.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-11-26T17:15:12.000Z (about 2 years ago)
- Last Synced: 2024-11-25T04:07:33.824Z (2 months ago)
- Topics: assembler, compiler, educational-project, golang, nand2tetris, nandtotetris, operating-system, virtual-machine
- Language: Hack
- Homepage:
- Size: 5.14 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![justforfunnoreally.dev badge](https://img.shields.io/badge/justforfunnoreally-dev-9ff)](https://justforfunnoreally.dev)
# NandToTetris
> What I cannot create, I do not understand — Richard Feynman.
## Table of contents
* [General info](#general-info)
* [What is it?](#what-is-it)
* [How i am doing it?](#how-i-am-doing-it)
* [Technologies](#technologies)
* [Project structure](#project-structure)
* [Status](#status)# General info
## What is it?
This repository is me documenting, things i will be learning and building while reading [The elements computing systems](https://mitpress.mit.edu/books/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](https://www.nand2tetris.org/).## How i am doing it?
They are two ways to go about,
1. Take online courses: [NandToTetris Part1](https://www.coursera.org/learn/build-a-computer), and [NandToTetris Part2](https://www.coursera.org/learn/nand2tetris2)
2. Reading the **book** [The elements of computing systems: Building a Modern Computer from First Principles](https://mitpress.mit.edu/books/elements-computing-systems)I prefer reading, so i went with the **book** :), and sometimes [Computer Systems Design - Kamakoti | IIT Madras ](https://www.youtube.com/playlist?list=PLEAYkSg4uSQ0eDa24iKd7qJlsrvr8XcvF)
[back to table of contents?](#table-of-contents)
## Technologies
* [The Nand to Tetris Software Suite](https://www.nand2tetris.org/software)
* [Go 1.18.2 or later](https://go.dev/)## Project structure
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
+---utilsdirectory `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.[back to table of contents?](#table-of-contents)
## Status
#### HARDWARE PART
✔️ Boolean Logic\
✔️ Boolean Arithmetic\
✔️ Memory\
✔️ Machine Language\
✔️ Computer Architecture\
✔️ AssemblerCompleted 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#### SOFTWARE PART
✔️ Virtual Machine I: Processing\
✔️ Virtual Machine II: Control\
✔️ High-Level Language\
✔️ Compiler I: Syntax Analysis([did not clear all tests ](https://github.com/ishwar00/NandToTetris/blob/main/nand2tetris/projects/10%20Compiler%20I:Syntax%20Analysis/JackAnalyzer/src/parserXML/readme.md))\
❌ Compiler II: Code generation\
❌ Operating System\
❌ More Fun to Go[back to table of contents?](#table-of-contents)