The Programming Languages Laboratory focuses on fundamental problems in programming languages.
We are interested in addressing challenging problems which can also have practical impact within a ten year time frame. A common thread of much of our research is the extraction of static (compile-time) properties of programs. This can include type information, flow information, security information, and other program properties.
Efforts involve both solving of fundamental problems, and implementation to justify the usefulness of the solution.
Typed scripting language design
Backstage Java: Difference-based metaprogramming for Java
Staged programming for sensor networks
Improving atomicity and programmability for multi-core machienes
Extracting inductive definitions from arbitrary programs for automated program reasoning
Rethinking classes, modules, and component boundaries and interactions
Securing programs by using programming language methodology to track data