Carnegie Mellon University Website Home Page


Jonathan Aldrich

Associate Professor 

Dr. Aldrich's goal is to improve the quality of software and the productivity of engineers by providing novel ways to express and enforce structural and behavioral aspects of software design within source code, typically through language design and type systems. He has contributed to object-oriented typestate verification, modular reasoning techniques for aspects and stateful programs, and new object-oriented language models. For his work specifying and verifying architecture, he has received a 2006 NSF CAREER award and the 2007 Dahl-Nygaard Junior Prize (press release, article). Currently Dr. Aldrich is working on the design of Wyvern, a new modularly extensible programming language.


Dr. Aldrich began teaching at at Carnegie Mellon University in 2003. Before that, he was a graduate student in Computer Science and Engineering at the University of Washington, working with Craig Chambers and David Notkin.

Dr. Aldrich and his wife Becky Billock enjoy hiking, backpacking, and mountain climbing, and playing music together. They were married in 2000 and have two beautiful daughters, Sierra and Evelyn.

Research Projects

Plaid - A typestate-oriented, gradually typed programming language
AEminium - A concurrent-by-default programming language, implemented as an extension to Plaid
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 (no longer active) - 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


All papers
Curriculum Vitae (html, PDF)
Selected talks