Elements of Computing (EOC) Nand2tetris projects
This repository contains my solutions and files for the Nand2Tetris course. Nand2Tetris is a unique project-based course that takes you through the process of building a computer system, from designing basic logic gates (NAND gates) to creating a complete software stack, including an operating system and programming language.
The Nand2Tetris course is divided into several projects, each building upon the previous one. Here's a brief overview of the projects included in this repository:
- Project 1: Boolean Logic - Implement basic logic gates using NAND gates.
- Project 2: Boolean Arithmetic - Build half-adders, full-adders, and other arithmetic logic units.
- Project 3: Sequential Logic - Construct flip-flops and registers, enabling the creation of sequential circuits.
- Project 4: Machine Language - Develop an assembly language and an assembler for a simple computer.
- Project 5: Computer Architecture - Build a computer's CPU, memory, and I/O modules.
- Project 6: Assembler - Create an assembler that translates symbolic machine code into binary code.
- Project 7: Virtual Machine I - Develop a virtual machine (VM) and a stack-based programming language.
- Project 8: Virtual Machine II - Enhance the VM to support more advanced features.
- Project 9: High-Level Language - Design a high-level, object-oriented programming language (Jack).
- Project 10: Compiler I - Create a Jack-to-VM translator (the first half of the compiler).
- Project 11: Compiler II - Complete the compiler by implementing the code generation phase.
- Project 12: Operating System - Build a simple operating system for the Hack platform.
- Project 13: Final Project - Combine everything learned to create your own software project.
-
Clone this repository to your local machine:
git clone https://github.com/Avishek8136/nand2tetris-projects.git