
Jonathan Aldrich
Associate ProfessorDirector, Software Engineering Minor
Address and Contact Information
Institute for Software Research
School of Computer Science
Carnegie Mellon University
5000 Forbes Avenue
Pittsburgh, PA 15213-3891
jonathan.aldrich@cs.cmu.edu
http://www.cs.cmu.edu/~aldrich/
+1-412-268-7278 (phone)
+1-412-268-2338 (fax)
8105 Wean Hall (office)
personal contact info (CMU only)
Executive Assistant
Corina Bardasuc
+1-412-268-9928
cora13 at cs dot cmu dot edu
Research
My research goal is to improve the quality of software and the productivity of engineers by providing novel ways to express and enforce software design within source code, typically through language design and type systems. I have contributed to object-oriented typestate verification, modular reasoning techniques for aspects and stateful programs, and new object-oriented language models. For my work specifying and verifying architecture, I received a 2006 NSF CAREER award and the 2007 Dahl-Nygaard Junior Prize (press release, article).
New Student Recruiting
Projects
I also have new project ideas (CMU only) for undergraduate, masters, and Ph.D. students.- Plaid - A programming language supporting emerging programming paradigms
- Object-Oriented Foundations - New models for object-oriented languages
- Typestate - Verifying component and library usage constraints (Plural tool)
- Separation Logic - Modular verification of higher-order, typed programs
- Ownership and Architecture - Capturing the high-level structure of object graphs
- ArchJava - Enforcing run-time software architecture within object-oriented code
- SASyLF - An educational proof assistant for language and logic metatheory
- Crystal - A Eclipse-based framework for teaching dataflow analysis
Selected Publications (full list, curriculum vitae)
Recent work
- Typestate-Oriented Programming. Jonathan Aldrich, Joshua Sunshine, Darpan Saini, and Zachary Sparks. In Proceedings of Onward!, 2009.
- Checking Framework Interactions with Relationships. Ciera Jaspan and Jonathan Aldrich. In Proceedings of the European Conference on Object Oriented Programming (ECOOP ’09), July 2009.
- Practical API Protocol Checking with Access Permissions. Kevin Bierhoff, Nels E. Beckman, and Jonathan Aldrich. In Proceedings of the European Conference on Object Oriented Programming (ECOOP ’09), July 2009.
Earlier work
- Using Types to Enforce Architectural Structure. Jonathan Aldrich. In Working International Conference on Software Architecture (WICSA ’08), February 2008.
- Open Modules: Modular Reasoning about Advice. Jonathan Aldrich. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP ’05), July 2005.
- Ownership Domains: Separating Aliasing Policy from Mechanism. Jonathan Aldrich and Craig Chambers. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP ’04), June 2004.
Upcoming Events
- 2008 Workshop on Specification and Verification of Component-Based Systems (SAVCBS'08), Steering Committee
- 2008 International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'08), Program Committee
- 2009 International Workshop on Foundations of Object-Oriented Languages (FOOL'09), Program Chair
Personal
In August 2003, I started as an assistant professor at Carnegie Mellon University. Before that, I was a graduate student in Computer Science and Engineering at the University of Washington, working with Craig Chambers and David Notkin.
My wife Becky Billock and I enjoy hiking, backpacking, and mountain climbing, and playing music together. We were married in 2000 and have two beautiful daughters, Sierra and Evelyn.