Skip to content

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

Notifications You must be signed in to change notification settings

oresttokovenko/elements_of_computing_systems

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published