Computer implementation as described in The Elements of Computing Systems.
Currently, only projects 00 through 06 have been completed. However, I intend to update this repository with the remaining projects as I complete them. All software is written in the C# programming language.
- Project 0: Introduction
- Project 1: Boolean Logic
- Project 2: Boolean Arithmetic
- Project 3: Sequential Logic
- Project 4: Machine Language
- Project 5: Computer Architecture
- Project 6: Assembler
- Project 8: VM II: Program Control
- Project 9: High-Level Language
- Project 10: Compiler I: Syntax Analysis
- Project 11: Compiler II: Code Generation
- Project 12: Operating System
This repository also includes a logisim simulation of The Hack Computer for a visual representation along with some simple .asm hack programs. There is a file converter called HackFileConverter under the 06 project directory which allows one to easily convert .hack files to .logisim files. These can be imported into Logisim's built-in ROM chips.
Build a Modern Computer from First Principles: From Nand to Tetris - Part I
Build a Modern Computer from First Principles: Nand to Tetris - Part II