{"id":21637916,"url":"https://github.com/ishwar00/nandtotetris","last_synced_at":"2026-04-27T08:31:31.440Z","repository":{"id":51362317,"uuid":"469249428","full_name":"ishwar00/NandToTetris","owner":"ishwar00","description":"Documenting my attempt to make a modern computer out of Nand logic gates ","archived":false,"fork":false,"pushed_at":"2022-11-26T17:15:12.000Z","size":5390,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-02T04:17:06.649Z","etag":null,"topics":["assembler","compiler","educational-project","golang","nand2tetris","nandtotetris","operating-system","virtual-machine"],"latest_commit_sha":null,"homepage":"","language":"Hack","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ishwar00.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-03-13T02:24:19.000Z","updated_at":"2023-01-01T10:08:09.000Z","dependencies_parsed_at":"2022-09-02T18:40:33.123Z","dependency_job_id":null,"html_url":"https://github.com/ishwar00/NandToTetris","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ishwar00/NandToTetris","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishwar00%2FNandToTetris","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishwar00%2FNandToTetris/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishwar00%2FNandToTetris/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishwar00%2FNandToTetris/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ishwar00","download_url":"https://codeload.github.com/ishwar00/NandToTetris/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishwar00%2FNandToTetris/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32329462,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assembler","compiler","educational-project","golang","nand2tetris","nandtotetris","operating-system","virtual-machine"],"created_at":"2024-11-25T04:07:36.427Z","updated_at":"2026-04-27T08:31:31.419Z","avatar_url":"https://github.com/ishwar00.png","language":"Hack","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![justforfunnoreally.dev badge](https://img.shields.io/badge/justforfunnoreally-dev-9ff)](https://justforfunnoreally.dev)\n\n# NandToTetris\n\n\u003e What I cannot create, I do not understand — Richard Feynman.\n\n## Table of contents\n* [General info](#general-info)\n    * [What is it?](#what-is-it)\n    * [How i am doing it?](#how-i-am-doing-it)\n* [Technologies](#technologies)\n* [Project structure](#project-structure)\n* [Status](#status)\n\n\n# General info\n\n## What is it?\nThis 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.\n\nquoting from book:\n\u003e *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\nprogram that comes to your mind. \n[know more](https://www.nand2tetris.org/).\n\n\n## How i am doing it?\nThey are two ways to go about,\n 1. Take online courses: [NandToTetris Part1](https://www.coursera.org/learn/build-a-computer), and [NandToTetris Part2](https://www.coursera.org/learn/nand2tetris2)\n 2. Reading the **book** [The elements of computing systems: Building a Modern Computer from First Principles](https://mitpress.mit.edu/books/elements-computing-systems)\n\n I prefer reading, so i went with the **book** :), and sometimes [Computer Systems Design - Kamakoti | IIT Madras ](https://www.youtube.com/playlist?list=PLEAYkSg4uSQ0eDa24iKd7qJlsrvr8XcvF)\n\n[back to table of contents?](#table-of-contents)\n\n## Technologies\n * [The Nand to Tetris Software Suite](https://www.nand2tetris.org/software)\n * [Go 1.18.2 or later](https://go.dev/)\n\n## Project structure\nNamespace Tree of the project at depth level 3.\n\n    +---nand2tetris\n    |   +---projects\n    |   |   +---01 Boolean Logic\n    |   |   +---02 Boolean Arithmetic\n    |   |   +---03 Memory\n    |   |   +---04 Machine Language\n    |   |   +---05 Computer Architecture\n    |   |   +---06 Assembler\n    |   |   +---07 Virtual Machine 1 (processing)\n    |   |   +---08 Virtual Machine 2 (control)\n    |   |   +---09 High-Level Language\n    |   |   +---10 Compiler I: Syntax Analysis\n    |   |   +---11\n    |   |   +---12\n    |   |   +---13\n    |   |   +---demo\n    |   +---tools\n    |   |   +---bin\n    |   |   +---builtInChips\n    |   |   +---builtInVMCode\n    |   |   +---OS\n    +---utils\n\ndirectory `nand2tetris/projects` has 12 projects(directories), each project is part of a chapter in the book.\\\ndirectory `nand2tetris/tools` has *The Nand to Tetris Software Suite* which will be used to simulate the computer.\n\n[back to table of contents?](#table-of-contents)\n\n## Status\n#### HARDWARE PART\n✔️  Boolean Logic\\\n✔️  Boolean Arithmetic\\\n✔️  Memory\\\n✔️  Machine Language\\\n✔️  Computer Architecture\\\n✔️  Assembler\n\nCompleted projects 1–6, and built a general-purpose\ncomputer system from first principles 🙌, the computer is capable of executing only programs written in\nmachine language  \n\n#### SOFTWARE PART\n\n✔️  Virtual Machine I: Processing\\\n✔️  Virtual Machine II: Control\\\n✔️  High-Level Language\\\n✔️  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))\\\n❌ Compiler II: Code generation\\\n❌ Operating System\\\n❌ More Fun to Go\n\n[back to table of contents?](#table-of-contents)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fishwar00%2Fnandtotetris","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fishwar00%2Fnandtotetris","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fishwar00%2Fnandtotetris/lists"}