This repository contains my implementations and exercises from the book "The Elements of Computing Systems: Building a Modern Computer from First Principles" by Noam Nisan and Shimon Schocken, where I build a computer system from the ground up using hardware and software engineering principles. The software projects in chapters 6, 7, 8, 10, and 11 are written in Go, which I chose for its combination of simplicity, strong typing, and memory management with pointers. The solution to each chapter (if it doesn't involve completing existing files) can be found in the _solution
directories.
Implementation of a two-pass assembler for the Hack assembly language, converting assembly code into machine code.
Development of a virtual machine that translates VM commands into Hack assembly, providing a high-level abstraction for programming.
Writing high-level programs in Jack, showcasing the full stack from high-level code to hardware execution.
Construction of a compiler for the Jack programming language, transforming high-level Jack code into VM commands.
Creation of a simple operating system that provides essential services for the Jack programming environment.
To use the implementations, follow the instructions provided in each module's README and run the provided scripts or programs as specified.