Research Interests
I want to make it easier for more people to write good programs. I like to design new languages and tools, especially for people who might not consider themselves to be programmers.
I also apply formal, programming-languages techniques and tools (e.g., abstract interpretation, formal semantics, program analysis) to make it easier to write programs in existing languages.
Peer-Reviewed Publications, Panels, Presentations, and Workshops
- Performing Tangier 2019
-
Performing Puzzle (workshop)
- AAC&U 2019
-
Transforming Core Curricula—and Campus Cultures (presentation)
- CHI 2017
-
User-Guided Synthesis of Interactive Diagrams
- ASSETS 2015
-
Understanding the Challenges Faced By Neurodiverse Software Engineering Employees: Towards a More Inclusive and Productive Technical WorkforceBest paper award
- FSE 2014
-
JSAI: A Static Analysis Platform for JavaScript
- VMCAI 2014
-
Widening for Control-Flow
- DLS 2013
-
Type Refinement for Static Analysis of JavaScript
- DBPL 2011
-
Remote Batch Invocation for SQL Databases
- Oakland 2011
-
Timing- and Termination-Sensitive Secure Information Flow: Exploring a New Approach
- PLDI 2010
-
Jinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces
- DO21 2009
-
Language Design for Distributed Objects
- OOPSLA 2008
-
Interprocedural Query Extraction for Transparent Persistenc
- CACM August, 2008
-
Wake Up and Smell the Coffee: Evaluation Methodology for the 21st Century
- POPL 2007
-
Extracting Queries by Static Analysis of Transparent Persistence
- OOPSLA 2006
-
The DaCapo Benchmarks: Java Benchmarking Development and Analysis
Invited Publications, Panels, Presentations, and Workshops
- CCSC-SW 2013
-
Flavors of Active Learning in CS Classrooms (panel)
- Software: Practice and Experience
-
Language Design and Analyzability: A Retrospective (journal publication)
Books
- Prentice Hall February, 2002
-
Python How To Program
- Prentice Hall February, 2002
-
The Complete Python Training Course
Dissertation
- UT Austin December, 2009
-
Integrating Programming Languages and Databases via Program Analysis and Language Design
Technical Reports
- UTCS TR-09-09 February, 2009
-
Model Transformation by Partial Transformation of Model Interpreters
- UTCS TR-09-40 December, 2009
-
Coordinating Database and Programming Language Research
- UTCS TR-08-32 July, 2008
-
A Unifying Framework for Describing the Space of Pointer Analysis Approximations (Extended Version)
- UTCS TR-07-38 July, 2007
-
Know Your Place: Selectively Executing Statements Based On Context
- ANUCS TR-CS-06-01 October, 2006
-
The DaCapo Benchmarks: Java Benchmarking Development and Analysis (Extended Version)