1. [Jul 2014] Interviewed for an article on PL Enthusiast.
  2. [Jun 2014] Spoke about Late Types at Dagstuhl.
  3. [May 2014] Spoke at Pint of Science US in San Diego.

... More News ...

Currently Teaching

[CMSC 161, Fall 2014] Honors Introduction to Computer Science I

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