Things I have built to understand how something works — interpreters, bootloaders,
emulators and servers, mostly written to be read rather than deployed.
-
Built with: go
Yeti! : Tiny Programming Language
This is an interpreter implementation of a tiny programming language called Yeti. It supports basic constructs like variables, arithmetic operations, conditionals, loops, functions, and print statements.
-
Built with: c · assembly
TinyOS : Hacking OS Internals
A tiny bootloader implementation with kernel initialization. It demonstrates the sequence of bootloader and kernel setup for a basic operating system using BIOS.
-
Built with: go · c
RISC-V VM : Experimental Assembler & Emulator
The assembler generates the HEX representations of the risc-v assembly instructions which can be the input for the emulator. The emulator is a RISC-V machine with 32 registers and memory to perform the computations and store the results in the registers.
-
Built with: c++ · bazel
WebServer : Exploring Sockets & Bazel
Exploration and experiments with Linux socket in an attempt to build a web server in C++ which is modular and reusable. This repo is built using Bazel, which initially had a steep learning curve.