My research focuses on languages that help programmers express architectural properties of their code, and tools that can enforce those properties. One example of my work is ArchJava, a language that integrates architectural specifications into Java code and uses a type system to ensure that the implementation conforms to the architectural design. With my students, I'm now exploring ways of enforcing architectural structure in pure Java using annotations. We're also looking at other architectural properties, including ordering of method calls and framework usage constraints. I've also made contributions to object models, separation logic, and aspect-oriented programming. For my work on architecture, I received a 2006 NSF CAREER award and the 2007 Dahl-Nygaard Junior Prize (CMU press release, Pop City article).
Ego - A small research language design that uses a linear type system to statically type changes to the types of objects at run time.
Plaid - A new programming language focused on novel composition mechanisms - More information coming soon!
Formal Methods for Advanced Langauges - Leveraging type systems technology to support model checking in modern object-oriented languages
Language and Analysis Support for Embedded and Real-Time Systems - developing techologies for easing the development of Claytronics and other embedded, real-time systemsi
17-654/17-754: Analysis of Software Systems (MSE and Ph.D.), Spring 2008
15-313: Foundations of Software Engineering, Spring 2008 (with Bill Scherlis)My wife Becky Billock and I enjoy hiking, backpacking, and mountain climbing, and playing music together. We've been married for seven wonderful years, and we have two beautiful daughters, Sierra and Evelyn.
jonathan.aldrich@cs.cmu.eduhttp://www.cs.cmu.edu/~aldrich/
Institute for Software Research, International
School of Computer Science
Carnegie Mellon University
5000 Forbes Avenue
Pittsburgh, PA 15213-3891office: 8212 Wean Hall
executive assistant: Corina Bardasuc, 412-268-9928work: 412-268-7278
fax: 412-268-2338
home: 412-521-1918