Problem sets completed from HUJI's offering of From NAND to TETRIS - The Elements of Computing Systems, 2017.
A complete description for each project is available at https://www.nand2tetris.org/course.
- 00 - Construction of Basic Logic Gates in HDL.
- 01 - Construction of more complex 16 bit chips, such as DMUX16, in HDL.
- 02 - HDL construction of bit shift, incrementer, half and full adder, and finally the arithmetic logic unit (ALU).
- 03 - Construction of timed chips, from a single bit register to a 16K RAM, in HDL.
- 04 - Assembly programming. Includes implementations of 16-bit multiplication and division, as well as some basic screen output.
- 05 - Final "chips". The construction of the CPU, the RAM address space, and the entire computer.
- 06 - Assembler program that translates programs written in the symbolic Hack assembly language into binary code that can execute on the Hack hardware platform built in the previous projects.
- 07 - A basic VM-to-assembly translator, focusing on the implementation of the VM language's stack arithmetic and memory access commands.
- 08 - A full-scale VM-to-assembly translator able to handle the VM language's branching and function calling commands.
- 09 - Implementation of a Flappy-Bird-like game in the JACK language, complete with increasingly difficult level generation.
- 10 - A syntax analyzer that parses Jack programs according to the Jack grammar, producing an XML file that renders the program's structure using marked-up text.
- 11 - A full scale Jack-to-VM compiler.
- 12 - Complete implementation of the Jack OS API. Includes classes such as: Memory, Array, Math, String, Screen, Keyboard, etc.