Skip to content

EthanFajnkuchen/nand-2-tetris

Repository files navigation

Nand2Tetris

This repository contains the code and projects for the Nand2Tetris course. Nand2Tetris is a project-based course that teaches you how to build a modern computer system from the ground up, starting with logic gates and building all the way up to a basic operating system.

The course is divided into 12 projects, each building on the previous one. Here is an overview of the 12 projects:

Project 1: Boolean Logic

The first project introduces you to boolean logic and teaches you how to build basic logic gates using Nand gates.

Project 2: Boolean Arithmetic

Project 2 teaches you how to build adders and other arithmetic circuits using the basic logic gates from Project 0.

Project 3: Sequential Logic

Project 3 introduces you to sequential logic and teaches you how to build flip-flops and other circuits that store data and to build circuits that can perform arithmetic operations on stored data..

Project 4: Machine Language

Project 4 introduces you to machine language and teaches you how to write programs in the Hack assembly language.

Project 5: Computer Architecture

Project 5 teaches you about computer architecture and how to build a simple computer using the circuits you've built in the previous projects.

Project 6: Assembler

Project 6 teaches you how to write an assembler that can translate Hack assembly language programs into binary code that can be run on the computer you built in Project 4.

Project 7: Virtual Machine I: Stack Arithmetic

Project 8 introduces you to virtual machines and teaches you how to build a virtual machine that can execute simple programs.

Project 8: Virtual Machine II: Program Control

Project 9 builds on the virtual machine you built in Project 7 and teaches you how to implement program control structures like loops and if-else statements.

Project 9: High-Level Language

Project 10 introduces you to a high-level programming language called Jack and teaches you how to write programs in Jack.

Project 10: Compiler I: Syntax Analysis

Project 10 teaches you how to write a compiler that can translate Jack programs into the VM code you wrote in Projects 7 and 8.

Project 11: Compiler II: Code Generation

Project 11 builds on the compiler you built in Project 10 and teaches you how to generate assembly language code that can be assembled into binary code and run on the computer you built in Project 5.

Project 12: Jack Operting System

Project 12 is the final project and teaches you how to build a basic operating system called JackOS using the Jack programming language you learned in Project 9. You'll build a some libraries such as Memory, Sys, String and more

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published