1. [Jan 2015] IsoLate camera-ready sent to ESOP 2015.
  2. [Jan 2015] Using Elm in a new Functional Programming course.
  3. [Dec 2014] Invited to serve on PLDI 2015 Student Research Competition PC.
  4. [Oct 2014] Invited to serve on the STOP 2015 PC.
  5. [Sep 2014] Done Building a New Chicago PL Page.
  6. [Sep 2014] Invited to serve on the OOPSLA 2015 ERC.
  7. [Jul 2014] Interviewed for an article on PL Enthusiast.

... More News ...

Currently Teaching

[CMSC 22300, Winter 2015] Functional Programming

... More Classes ...


I am interested in programming language, compiler, and program analysis technology. Below are some of the projects I've worked on. For more information about my research, check out my publications and talks.

active projects

[DeScript] Scripting languages include features that frustrate static reasoning, such as extensible objects, dynamically computed keys, loosely coupled recursion, reflection, and dynamic code loading. This project aims to develop type systems to describe idiomatic programs in scripting languages such as JavaScript, Python, and Ruby.

older projects

[Staged Information Flow] The prevalence of dynamically loaded code makes program analysis for JavaScript difficult. We present a staged approach to tracking information flow that splits the analysis burden between compile-time and run-time.
[Fine, Microsoft Research] Modern SMT solvers allow refinement type systems to track security and other complex properties, but they become a large part of the compiler's trusted computing base (TCB). Fine incorporates a type-preserving translation to eliminate the solver from the TCB. Fine is a precursor to MSR's F* language.
[Radar] Defining a dataflow analysis for concurrent programs is complicated by the subleties of thread interleavings and locking protocols. Radar automatically converts a sequential dataflow analysis to a concurrent one by making use of datarace information from the Relay race detector for C programs.