Carnegie Mellon University

Jonathan Aldrich

Dr. Jonathan Aldrich

Professor, Institute for Software Research

5000 Forbes Avenue
Pittsburgh, PA 15213


I work at the intersection of programming languages and software engineering. My research explores how the way we express software affects our ability to engineer software at scale. A particular theme of much of my work is improving software quality and programmar productivity through better ways to express structural and behavioral aspects of software design within source code.

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 releasearticle). Right now I'm excited to be working on the design of Wyvern, a new modularly extensible programming language.


Wyvern - A general-purpose language focused on security, modularity, and language extensibility.

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