Light
code header

Past Interests

This page archives academic interests and projects from my time as a PhD student at Tufts University, where I worked in the TUPL lab. The primary thread of that work was developing formal methods for specifying and debugging memory managers and garbage collectors. Much of that thinking carries forward into my current interest in dynamic analysis and issue-detection tooling, just at a different layer of the stack.

Academic interests (Tufts era)

  • Memory layout optimization.
  • Runtime system verification.
  • Programming language design.
  • Stellar astrophysics (data analysis).
  • Network protocols.
  • Data formats.

Projects

Formally specifying memory managers

The core of my dissertation: a typestate-based permission system for formally specifying the memory layout properties of garbage collectors, with a focus on the JVM. The goal was to make GC bugs detectable at the specification level rather than through post-hoc debugging of rare runtime failures. The key insight was that a memory manager's correctness depends on maintaining invariants about object reachability and layout that are invisible to conventional type systems.

See the defense presentation for a full overview, or the earlier draft version.

PADS-Haskell

Extending the PADS data description language to support binary and cyclic data structures. PADS provides a declarative way to describe ad-hoc data formats, generating parsers and printers automatically from a specification — useful anywhere you're dealing with a binary protocol or legacy format that predates modern serialization libraries.

ANTLR-Haskell

A deeply-embedded quasiquoter for defining language grammars in Haskell using ANTLR's G4 syntax, with the goal of bringing industry-standard parsing infrastructure into the Haskell ecosystem. Read the post.