Hi, I'm Caroline.
Software developer with a Mathematics MSc.
My projects tend to be implementations of mathematical ideas: a regex engine that uses Nondeterministic Finite Automata, a raytracer that evaluates the rendering equation using photon mapping, a lambda calculus interpreter that uses a Krivine Abstract Machine.
I work mostly in C++, Rust and Haskell.
- NFA-Based Regex Engine (C++): a grep-style regex engine built on Thompson's NFA construction, for linear-time matching without catastrophic backtracking.
- Ray Tracer with Photon Mapping (C++): a Whitted-style ray tracer with global illumination via photon mapping, following Jensen's 1996 paper.
- Lambda Calculus Interpreter (Haskell): evaluates lambda calculus expressions using a Krivine Abstract Machine.
- Hack Assembler (Haskell): a two-pass assembler for the Hack instruction set, from Nand2Tetris.
- CHIP-8 Emulator (Rust): an interpreter that runs any standard CHIP-8 program; passes Timendus' test suite.
- Path Tracer (Rust): Peter Shirley's Ray Tracing series, translated from C++ to Rust.
