None (Winter 2017)
I enjoy developing and deploying programming language technology — type systems, synthesis algorithms, and other program analysis techniques — for applications in software engineering and human-computer interaction. Below are some of the projects I've worked on. For more information about my research, check out my publications and talks.
|[Sketch-n-Sketch] Graphical user interfaces are great, but the lack of programmability in a high-level language makes it difficult to develop complex and reusable content. Sketch-n-Sketch is a direct manipulation programming system for scalable vector graphics (SVG) that aims for a seamless combination of programming and direct manipulation.|
|[Radar @ UCSD] Defining a dataflow analysis for concurrent programs is complicated by the subtleties 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.|
|[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.|