Course Topics:
A course which builds a modern software hierarchy starting from simulated bare-bones computer hardware and ending at the implementation of a high-level, object-oriented langauge.
Part I
Covered stages from the hardware level to the Hack assembly language.
Topics include:
- Boolean functions, logic gates, and hardware simulation
- boolean arithmatic, storing and adding bits, and arithmetic logic units
- RAM, sequential logic, and counters
- Building a CPU and intergrating it and the RAM into the Hack computer
- Marchine languages, the Hack assembly language and its interpretor
Part II
Focused on building a series of interpretors that connect machine and assembly language to the high-level Jack language:
- Virtual machine implementation, including memory segments, working memory stack, branching, functions, and call stacks
- Interpretor methods, including syntax and lexigraphical analysis, parse logic and trees, and the Jack language's implementation
- Object-oriented implementation, from variables to expressions to objects and arrays
- Creating programs and libraries on the Hack computer with the Jack language, stretching over mathematical operators, memory access and heap management, graphics, textual output, string and array processing, and the OS itself
- The Jack language, its implementation, and how to program in it, as well as graphics optimization