Projects
I work on a lot of different things, here is a list of them!
file-duplicates
A quick way to find out if you have duplicate files in a directory.
An ELF linker for x86-64
I wanted to learn more about linkers and the linking process, so I set out to build a toy linker myself. It can currently link a "Hello, world!" program.
A JIT compiler for a Lisp language
In an attempt to learn more about the C language, and JIT compilers in general, I’ve set out to create a JIT compiler for a toy Lisp language. At the moment the interpreter can run simple programs, and it traces and compiles “hot” paths via LLVM into machine code. When a “hot” path is taken again, the interpreter jumps to the compiled machine code instead of interpreting the bytecode.
Lua Interpreter - Master's project
During my final year at Univestity I worked on a Lua 5 interpreter written in Rust. The aim of the project was to build an efficient interpreter that can reach the speed of the original Lua interpreter that is written in C.
Memory Profiling and Custom Allocators in C++ - BSc project
I built a framework which allows users to inject a memory pool allocator into an executable to improve the memory usage of programs.