I am interested in various issues in functional programming language design, module systems, type inference, the applications of advanced type systems, and compilers.
[Publications]Language support for modularity is a common theme in any nontrivial language used to construct large software systems. Typed languages, in particular, present interesting design problems. Central to module system design is the imperative to enable separate compilation of large software systems and specification of interfaces to separately compilable compilation units. The richer and more powerful a core language is, the more complicated interface specification of separately compilable modules becomes. The interplay and tension between separate compilation and the simplicity of interface specifications provide a rich design space. The need for modularity is not restricted to general purpose programming languages. For example, theorem proving and model checking languages also employ module systems to improve organizational flexibility and performance by spreading out code to multiple modules and thereby limiting the size of any individual module. Popular extensions of SML such as SML/NJ and MLton support a particularly powerful module system that is higher-order and yet admits full transparency of type components that result from higher-order functor (i.e., a function from module to module) application.
Currently, I am working with Dave MacQueen on the SML/NJ module system and compiler. The goal is to eliminate FLINT dependencies in the front-end. Once complete, users will be able to integrate the SML/NJ elaborator with alternative optimizer, code generators, and programming tools.
Previously, I have studied methods and semantics for teaching type inference using only rewriting with Dave MacQueen and Robby Findler. While I was at Harvey Mudd, I implemented Jun Yang's UAE (Unification of Assumption Environments) type inference algorithm for the entire Core ML with Chris Stone and various others.
At the University of Chicago and TTI-C, we have an assortment of programming languages oriented activities such as PL Lunch (at TTI-C) and the HYPER (at UChicago).
I am a graduate student who is studying at the wonderful Department of Computer Science, University of Chicago. I obtained my Bachelor of Science (in Computer Science) from Harvey Mudd College.