I am a software engineer at Curriculum Associates. I am particularly interested in compilers and programming languages. In my free time, I enjoy composing/playing music and reading Nietzsche!
An OCaml library to aid users in writing binary files.This library is particularly useful for bytecode compilers when the user needs to convert decimals to binary sequences of certain lengths and endianness.
An OCaml library that provides a simple interface for reading user input. This project is particularly useful for REPLs. The user may specifiy brackets that must be closed before accepting input.
A compiler for a statically typed language that produces x86 assembly. Features include: hygienic macros, garbage collection, register allocation, functions, closures, parametric polymorphism, generalized algebraic data types, vectors, arrays, control flow, etc...
A byte-code compiler for a small lazy language and its corresponding virtual machine. The VM is based on a CEK machine and has a stop and copy garbage collector included. The compiler is written in OCaml and the VM is written in C++.
An implementation of Algorithm W, which performs type inference on an ML language. This algorithm generalizes functions without explicit parameterization. Implemented in OCaml.
An implementation of a Scheme interpreter, as described in Write Yourself a Scheme. Implemented in Haskell.