Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/oresttokovenko/elements_of_computing_systems

"The Elements of Computing Systems: Building a Modern Computer from First Principles" by Noam Nisan and Shimon Schocken
https://github.com/oresttokovenko/elements_of_computing_systems

computer-science elements-of-computing-systems low-level-programming

Last synced: 11 days ago
JSON representation

"The Elements of Computing Systems: Building a Modern Computer from First Principles" by Noam Nisan and Shimon Schocken

Awesome Lists containing this project

README

        

# 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](projects/ch06/_solution)
- [Virtual Machine](projects/ch08/_solution)
- [High-Level Language](projects/ch09/_solution)
- [Compiler](projects/ch11/_solution)
- [Operating System](projects/ch11/_solution)

## 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.