| office | ECOT 621 |
|---|---|
| 430 UCB, Boulder, CO 80309-0430 USA | |
| phone | +1 303 492 8894 |
| fax | +1 303 492 2844 |
Ph.D. Positions. I am always looking for enthusiastic students interested in working with me on research projects in programming languages and software systems. If you are interested in finding out more, please contact me.
For recent news about the Programming Languages group at the University of Colorado Boulder, take a look at our most recent recruiting talk.
I am an assistant professor in the Department of Computer Science and the Programming Languages and Verification Group at the University of Colorado Boulder.
I work primarily in the areas of programming languages and program analysis. My research interests center on tools and techniques for building, understanding, and ensuring reliable computational systems. Currently, my focus is on using novel ways of interacting with the programmer to design more precise and practical program analyses. The Xisa project is an instance of this approach that infers precise properties of complex data structure manipulations. The novelty of Xisa is that it extracts both the necessary invariants and reasoning rules from executable assertions (analogous to data structure validation code often written for testing). This approach allows the developer to focus the analysis to the properties of interest and without using a separate formalism for testing and static analysis.
I completed my Ph.D. in 2008 with George Necula in the EECS department at the University of California, Berkeley. I also spent the fall of 2008 as a post-doc with Jeff Foster in the PLUM group at the University of Maryland, College Park before joining the University of Colorado Boulder in January 2009.
Even earlier, I spent my undergraduate days at Carnegie Mellon University completing a senior thesis with Frank Pfenning and Bob Harper.
Students
| Devin Coughlin (co-advised with Amer Diwan). Gradual programming. |
| Arlen Cox (co-advised with Sriram Sankaranarayanan). Concurrency. |
| Sam Blackshear. Witness-generating program analysis. |
| Yi-Fan Tsai. Hybrid shape analysis. |
Teaching
|
Program Analysis: Theory and Practice
Spring 2013 and Fall 2010
|
CSCI 7135 |
|
Principles of Programming Languages
|
CSCI 3155 |
|
Readings in Programming Languages
Spring 2012: Analysis of Dynamic Languages
|
CSCI 7900 |
|
Compiler Construction
|
CSCI 4555/5525, ECEN 4553/5523 |
|
Program Analysis Practicum
|
CSCI 7135 |
|
Fundamentals of Programming Languages
|
CSCI 5535 |
Selected Projects
Recent Papers
Recent Talks
Professional Activities
| POPL 2014 |
Co-Treasurer
ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages
|
| TAPAS 2013 |
Program Committee Chair
International Workshop on Tools for Automatic Program Analysis
|
| POPL 2013 |
Treasurer
ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages
|
| TAPAS 2012 |
Program Committee Member
International Workshop on Tools for Automatic Program Analysis
|
| PLDI 2012 |
External Review Committee Member
ACM SIGPLAN Conference on Programming Language Design and Implementation
|
| POPL 2012 |
Treasurer and External Review Committee Member
ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages
|
| VMCAI 2012 |
Program Committee Member
International Conference on Verification, Model Checking, and Abstract Interpretation
|
| NSAD 2011 |
Program Committee Member
International Workshop on Numerical and Symbolic Abstract Domains
|
| LCPC 2011 |
Program Committee Member
International Workshop on Languages and Compilers for Parallel Computing
|
| PASTE 2011 |
Program Committee Member
ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering
|
| POPL 2011 |
Treasurer
ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages
|
| POPL 2010 |
Co-Treasurer
ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages
|
| FRACTAL F2009 |
Organizer
Front Range Architecture Compilers Tools and Languages Workshop
|
| PLDI 2009 |
External Review Committee Member
ACM SIGPLAN Conference on Programming Language Design and Implementation
|
| AIOOL 2005 |
Program Committee Member
International Workshop on Abstract Interpretation of Object-Oriented Languages
|