Hack-Jack is a serie of 11 projects that implements a computing system from the basic logic chips all the way up to building a compiler for a high-level language called jack and an operating system called jackOS, the design of the various layers of abstractions have been provided by Shimon Schocken and Noam Nisan on their famous courses, Build a Modern Computer from First Principles: From Nand to Tetris part-1 and part 2 presented in coursera.
As a self-taught developer and in the aim of developing a solid understanding of coumputer science fundamentals, I found this course very usefull and rewarding as it clarified many confusions I had about computers and software in a very elagant and concise way.
The projects are composed into 2 parts, Hardware (1-5), Software Hierarchy (6-11), in the hardware part w've used a basic Hardware description language designed by the instructors, and for the software I used python3 for all the proejcts that requires a third party language.
1- Basic Logic Gates
2- The ALU chip
3- Memory Chip
4- Machine Language
5- Computer Architecture
6- Virtual Machine - Stack Arithmetic
7- Virtual Machine - Program Control
8- High-Level Language
9- Compiler - Syntax Analyzer
10- Compiler - Code Generator
11- Operating System
I have provided a README file that explains each project separately, found on each project folder.
For more information about the projects and the course you can check the offical website: nand2tetris or the book