Skip to content
View CarolineMillan's full-sized avatar

Block or report CarolineMillan

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
CarolineMillan/README.md

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.

Projects

  • 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.

Pinned Loading

  1. raytracer_cpp raytracer_cpp Public

    Photon Mapping Whitted Ray Tracer in C++

    C++

  2. grape grape Public

    NFA-based regex engine built on Thompson's Construction Algorithm

    C++

  3. HackAssembler_hs HackAssembler_hs Public

    A two-pass assembler for the Hack assembly language, from the course 'From NAND to Tetris', written in Haskell.

    Hack

  4. CHIP8_emulator CHIP8_emulator Public

    CHIP-8 Emulator in Rust

    Rust

  5. lambda_calculus lambda_calculus Public

    Lambda Calculus Interpreter with Krivine Abstract Machine in Haskell

    Haskell

  6. pathtracer_rs_bk2 pathtracer_rs_bk2 Public

    Ray Tracing: The Next Week

    Rust