Skip to content

This repository contains my solutions to the projects in the Nand2Tetris course in Java.

Notifications You must be signed in to change notification settings

nino-salih/nand2tetris

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nand2Tetris

This repository contains my solutions to the projects in the Nand2Tetris course. The course is designed to teach computer science students how to build a modern computer system from the ground up, starting with the basic building blocks of logic gates and working up to a fully functional operating system.

Only projects 1 to 10 are implemented.

The assembler, compiler etc are written in Java.

Course Overview

The course is divided into two parts:

  1. Building a computer from the ground up, starting with the basic building blocks of logic gates and working all the way up to a fully functional computer system.
  2. Writing software for the computer, including an assembler, a virtual machine, a compiler, and an operating system.

Folder Descriptions

The course is divided into 12 folders, each containing the projects for a different part of the course. Here's a brief description of each folder:

  1. 01: Boolean Logic - Building basic logic gates and combinational circuits.
  2. 02: Boolean Arithmetic - Building an Arithmetic Logic Unit (ALU).
  3. 03: Sequential Logic - building bits, registers and memory.
  4. 04: Machine Language - Writing low-level machine language programs to run on the computer.
  5. 05: Computer Architecture - building the finished computer, including a CPU, memory.
  6. 06: Assembler - Develop an assembler to translate programs written in Hack assembly language into machine language.
  7. 07: VM I: Stack Arithmetic - Development of a VM to assembler translator, implementing arithmetic-logical and push/pop instructions.
  8. 08: VM II: Program Control - Finishing the VM to assembler translator with branching and function commands.
  9. 09: High-Level Language - Writing a program in Jack
  10. 10: Compiler I: Syntax Analysis - Develop a compiler for Jack, focusing only on syntax analysis.
  11. 11: Compiler II: Code Generation - Extend the syntax analyser into a full Jack compiler.
  12. 12: Operating System - Implementation of the Jack OS

Getting Started

Go to nand2tetris.org and download the Nand2tetris Software Suite.

You can have a look at this repo if you get stuck somewhere.

Acknowledgments

This course was created by Noam Nisan and Shimon Schocken, and is available for free at nand2tetris.org. I highly recommend it to anyone interested in computer science or computer engineering.

About

This repository contains my solutions to the projects in the Nand2Tetris course in Java.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published