Assistant professor at Tufts University; programming languages, formal methods, compilers
sai. Staged Abstract Interpreters
69diamond-lang. A prototype programming language with polymorphic reachability types that track freshness, sharing and separation.
502048.py. Text-based 2048 in Python.
23quantum-compiler. Quantum circuits compiler with staging and continuations
17MyPLZoo. Implementations of various toy programming languages
12verifyo. Experiments with writing relational verifier/synthesizer in miniKanren.
10SAT.rkt. A simple SAT solver based on DPLL written in Racket.
9llmaam. Scheme
8contract-for-contract. Solidity
62048.rkt. A text-based 2048 game in Racket.
5lisp.js. A tiny lisp interpreter in JavaScript.
5playground. my playground
4omega. A Scala Implementation of the Omega Test
3dataflow-analysis. Racket Implementation of Data-flow Analyses
3RefuncAAM. Artifact of Refunctionalization of Abstract Abstract Machines (ICFP '18)
2Verify-Contracts-for-Dynamic-Lang. Racket
2the-little-schemer. Scheme code from the book The Little Schemer.
2the-little-typer. Racket
1scala-lang. sources for the Scala language website
1LLAAM. Low-Level Abstracting Abstract Machine
1Sudoku. Sudoku generators and solvers in various functional styles.
1Leetcode. My {Racket, Python} solutions for Leetcode algorithm problems
1qdict. a simple network dictionary.
1abscomp. An Implementation of Abstract Compilation
1