My research interests are in the areas of programming languages and
software engineering with applications in the computational sciences.
In particular, I am interested in language support for
high-performance software libraries and domain specific languages. My
research includes work in type systems, optimizing compilers, program
logics, and language facilities for program generation.
- Gradual typing is a type
system I developed with Walid Taha that allows a program to be
dynamically typed in parts and statically typed in other parts.
The programmer controls which parts are dynamic/statically checked
by either leaving out type annotations on function parameters, or
by putting in the type annotations.
Gradual typing for functional languages.
In Scheme and Functional Programming Workshop,
Gradual Typing for Objects.
In ECOOP 2007: European Conference on Object-Oriented Programming,
Gradual Typing with Unification-based Inference.
In the Dynamic Languages Symposium 2008. [pdf][bib][implementation]
Exploring the Design Space of
Higher-Order Casts. In ESOP: European Symposium on Programming,
York, United Kingdom, March 2009.
Threesomes, With and Without Blame. In the First International
Workshop on Script to Program Evolution (STOP
Threesomes, With and Without Blame.
Accepted for POPL 2010.
Supersedes the STOP 2009 paper.
- Build To Order BLAS (project webpage)
Automating the Generation of Composed Linear Algebra Kernels.
In SC09: the International Conference on High Performance Computing,
Networking, Storage, and Analysis. November, 2009.
Generating Empirically Optimized Composed Matrix Kernels from MATLAB
In International Conference on Computational Science 2009.
- Build to Order Linear Algebra Kernels
the Workshop on Performance Optimization of High-level
Languages and Libraries (POHLL'08).
- G, a language for generic programming. Planned extensions:
- Existential types