[go: up one dir, main page]

Skip to content

Build a Modern Computer from First Principles

Notifications You must be signed in to change notification settings

stop1204/Nand2Tetris

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

roadmap

Summary of Projects which built upon each other

  • 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 9: Jack Language -> Created a personal finance command line program in Jack, a Java-like langauge used for this course
  • project 10 & 11: Compiler -> Finished two-tier compilation process by implementing compiler for translation of high-level Jack language into VM langauge, akin to Java bytecode
  • project 12: Operating System -> Wrote Operating System classes to "ship" with Hack / Jack platform to provide an interface for high-level Jack programmer to low-level resources, i.e, memory allocation

About

Build a Modern Computer from First Principles

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Assembly 55.2%
  • Scilab 17.9%
  • Python 15.8%
  • HTML 8.8%
  • Shell 1.0%
  • Batchfile 0.7%
  • C 0.6%