Skip to content

JurajX/Nand2Tetris

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nand2Tetris

This project follows a wonderful book by Noam Nisan and Shimon Shocken, The Elements of Computing Systems. The book leads you through the architecture of a simple computer and explain the necessary details so that you can build the computer in exercises. All in all there is 12 exercises, each focusing on a different part. A short descriptions of the exercises follows:

  1. build, simulate, and test 15 elementary logic gates from NAND;
  2. build a family of chips adding numbers, and Arithmetic Logic Unit (ALU);
  3. build a family of Random Access Memory (RAM) chips from flip-flop gates;
  4. write a number of programs in assembly language, and test them in an emulator;
  5. assemble already built chips into a Central Processing Unit (CPU), and integrate CPU with RAM, i.e. build the 'Hack' computer;
  6. write an Assembler for the defined 'Hack' computer architecture;
  7. write the first part of Virtual Machine (VM) translator translating VM programs into the Hack assembly language;
  8. finalise the VM translator;
  9. write a program using a java-like, high-level programming language called Jack;
  10. write the first part of the compile from Jack to VM language;
  11. finalise the compiler;
  12. write an efficient OS libraries supporting the Jack language (memory management, math, array, string, graphics, and i/o libraries).

About

Building a Modern Computer From First Principles.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published