Skip to content

💻 The Elements of Computing Systems: Building a Modern Computer from First Principles, Projects

Notifications You must be signed in to change notification settings

notDroid/Nand2Tetris

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build a Computer from First Principles

roadmap

All tools used are avaliable at Nand2Tetris Web IDE. Part 1 files not in this repo (done completely in ide).

Summary of Projects

  • Project 1: Logic Gates -> Starting from an elementary NAND logic gate, built an array of more complex logic gates, i.e., And, Or, Mux, Xor, etc..
  • Project 2: ALU -> Constructed an adder chip and ALU, which executes all the arithmetic and logical operations.
  • Project 3: Registers & Program Counter -> Used a D Flip Flop circuit, which enables storing state in a chip, to construct a series of registers and a Program Counter.
  • Project 4: Assembly -> Wrote Assembly Language programs using the Hack Machine Language.
  • Project 5: Full Computer -> Constructued CPU, ROM, and RAM units leading to a full scale Computer.
  • Project 6: Assembler -> Created Hack assembler in Python to translate Hack Assembly Language into Hack Binary Machine Language.
  • Project 7 & 8: VM Translator -> Started Two-Tier compilation process by building Virtual Machine Translator of a Jave-like, stack-based Bytecode into Hack Assembly Language.
  • Project 10 Syntax Analysis: Created syntax analyzer, the first stage of the jack compiler, that parses a jack program and build a parse tree in xml format.
  • Project 11: Compiler -> Finished two-tier compilation process by implementing compiler for translation of high-level Jack language into VM langauge, akin to Java bytecode.

About

💻 The Elements of Computing Systems: Building a Modern Computer from First Principles, Projects

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published