picture of Jonathan Aldrich

Jonathan Aldrich

Associate Professor
Director, 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)
Office: M/T/W/Th - 4128 Wean Hall
Office: Friday - 9227 Gates
personal contact info and cell phone (CMU only)

Executive Assistant

Victoria Poprocky
+1-412-268-3063
poprocky at cs dot cmu dot edu
5125 Wean Hall

Research

My research 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. 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). Right now I'm excited to be working on the design of the Plaid programming language!

New Students Wanted!

Check out our Research Experience for Undergraduates and Master's students, as well as information for prospective Ph.D. students.

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

Selected Publications (full list, curriculum vitae, talks)

Recent work

  • A Type System for Borrowing Permissions. Karl Naden, Robert Bocchino, Kevin Bierhoff, Jonathan Aldrich. To appear in Proceedings of Principles of Programming Languages (POPL '12), 2012.
  • First-Class State Change in Plaid. Joshua Sunshine, Karl Naden, Sven Stork, Jonathan Aldrich, and Éric Tanter. To appear in Proceedings of Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '11), 2011.
  • Gradual Typestate. Roger Wolff, Ronald Garcia, Éric Tanter, and Jonathan Aldrich. To appear in Proceedings of the European Conference on Object-Oriented Programming (ECOOP '11), 2011.
  • An Empirical Study of Object Protocols in the Wild. Nels E. Beckman, Duri Kim, and Jonathan Aldrich. To appear in Proceedings of the European Conference on Object-Oriented Programming (ECOOP '11), 2011.

Earlier work

Upcoming Events and Organizations

Personal

In August 2003, I started teaching 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.