Master's project:
a JavaScript interpreter that parses JavaScript into an AST, converts the AST to a more
convenient tree representation and walks the tree to interpret the JavaScript code. Uses
mark-and-sweep garbage collection.
Why:
An instruction set architecture with a corresponding assembler, linker and VM. The assembly language
uses a syntax vaguely reminiscent of C, with minimal use of mnemonics.
LL2W:
a standalone half-compiler, not integrated with LLVM, that parses LLVM intermediate representation
(IR) and gradually compiles it to assembly for Why. Makes extensive use of graph algorithms for
liveness analysis and register allocation.
C+-:
a full compiler for a custom C++-like language that implements most features of C and a few from
C++. Produces assembly for Why.
I have more projects beyond these; see my GitHub profile for a full
list.