Skip to content

Latest commit

 

History

History
29 lines (20 loc) · 1.65 KB

README.md

File metadata and controls

29 lines (20 loc) · 1.65 KB

Elements of Computing Systems

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.

Table of Contents

Assembler

Implementation of a two-pass assembler for the Hack assembly language, converting assembly code into machine code.

Virtual Machine

Development of a virtual machine that translates VM commands into Hack assembly, providing a high-level abstraction for programming.

High-Level Language

Writing high-level programs in Jack, showcasing the full stack from high-level code to hardware execution.

Compiler

Construction of a compiler for the Jack programming language, transforming high-level Jack code into VM commands.

Operating System

Creation of a simple operating system that provides essential services for the Jack programming environment.

Usage

To use the implementations, follow the instructions provided in each module's README and run the provided scripts or programs as specified.