Jonathan Aldrich
Software and Societal Systems Department
School of Computer Science
Carnegie Mellon University
5000 Forbes Avenue
Pittsburgh, PA 15213-3891email: jonathan.aldrich@cs.cmu.edu
web: http://www.cs.cmu.edu/~aldrich/
phone: +1-412-268-7278
fax: +1-412-268-2338
office: 422 TCS Hall
Executive assistant:
Linda Campbell
lv2c at andrew dot cmu dot edu
I work at the intersection of programming languages and software engineering. My research examines new ways to express software and its properties that improve our ability to engineer software at scale. Effective software engineering at scale is closely tied to design---how a system is broken into parts, and how those parts compose to achieve the desired functionality and properties of the system. Thus, my research develops new ways to express design within source code, where both tools and engineers can most effectively leverage it, thereby improving productivity and reducing errors. My work also focuses on improved object models---a foundational composition mechanism---as well as type systems and logics for specifying component boundaries and reasoning about the result of composition. I evaluate the systems I develop using a wide variety of techniques, including mathematical proofs, case studies, code corpus studies, and evaluations with human subjects. One might say that I work on languages for better software engineering, but that I also take an engineering approach to language design: thinking not just about what a language can express, but the cost-benefit tradeoffs of various language constructs and how those constructs work together to help engineers develop software more effectively.
Ph.D., Computer Science and Engineering, University of Washington, August 2003.
Advisors: Craig Chambers and David Notkin
Thesis: Using Types to Enforce Architectural DesignM.S., Computer Science and Engineering, University of Washington, June 1999.
B.S., Engineering and Applied Science (Computer Science), California Institute of Technology, June 1997.
2017-present Professor, Carnegie Mellon University 2009-2017 Associate Professor, Carnegie Mellon University 2003-2009 Assistant Professor, Carnegie Mellon University 1997-2003 Graduate Student and Research Assistant, University of Washington Summer 1997 Research Assistant, California Institute of Technology Summers 1993-1996 Summer Intern, Sequent Computer Systems, Inc.
2022-present Organizer, S3D Distinguished Speaker Series 2020-present SCS Undergraduate Review Committee 2024 Master of Software Engineering admissions committee 2020-2022 Academic Freedom Commission 2020-2021 ISR Representative, SCS Council 2020 ISR Hiring Committee 2004-present SE Ph.D. admissions committee 2012-present Member, Computer Science Department Speaker's Club 2014-2019 Director, ISR Software Engineering Ph.D. Program 2015-2017 Diversity Liaison, Software Engineering Faculty Search Committee 2014 Created the first edition of ISR's REUSE summer research program 2007-2014 Director, ISR Software Engineering Undergraduate Minor Program 2008-2012 Chair, Software Engineering Faculty Search Committee 2009-2011 Fellowship Nomination Committee 2009 SCS Dean Review Committee 2006 Graduate Student Retention Workgroup 2005-2007 Chair, ISR Undergraduate Software Engineering committee 2004 CSD admissions committee
Anlun Xu. Extending Abstract Effects with Bounds and Algebraic Handlers, 2020.
Yu Xiang "Billy" Zhu. Nominal Wyvern: Employing Semantic Separation for Usability, 2019.
Johannes Bader. Gradual Program Verification with Implicit Dynamic Frames, 2016.
Manuel Mohr. Æminium Compilation Theory and Run-Time Implementation, 2011.
Duri Kim. An Empirical Study on the Frequency and Classification of Object Protocols in Java, 2009.
Taekgoo Kim. Towards Specification and Verification of Usage Protocol Using Typestates in JML, 2009.
GwanPyo Do. Reachable Reference Algorithm for Inferring Ownership Types in Object Oriented Programming Languages, 2008.
Yoon-Phil Kim. Permission-based Optimization for Efficient Software Transactional Memory, 2008.
Esther Wang. Designing Capability Safe Reflection for the Wyvern Language, 2016.
Sarah Chasins. Undergraduate thesis advisee in CS (at Swarthmore). Completed 2012.
Mark Hahnenberg. Undergraduate thesis advisee in CS. Completed 2011.
Sneha Popley. Undergraduate thesis advisee in CS (at Texas Christian University). Completed 2010.
Key Shin. Undergraduate thesis advisee in CS. Completed 2007.
Matthew Kehrt. Undergraduate thesis advisee in CS. Completed 2006.
Will Cooper. Undergraduate thesis advisee in CS. Completed 2006.
Andi Bejleri. Undergraduate exchange student thesis advisee. Completed 2005.
Lee Salzman. Undergraduate thesis advisee in Logic and Computation. Completed 2004.
Fuyao Zhou (2010-2012)
Aparup Banerjee (2010-2011)
Darpan Saini (2008-2010)
Kelvin Lim (2008)
Jeffrey Beckett (2008)
Majid Al-Meshari (2007)
Tim Kral (2007)
Joseph Ayo Akinyele (2007)
Lutz Wrage (independent study 2006)
Varun Dutt (2006)
Monica Page (2006)
Sangjin Han (2006)
Bhavana Rehani (2006)
David Dickey (2006)
Min Chen (2005)
Soumya Simanta (2005)
Prasanth Ramanand (2005)
Michael German (2005)
Animesh Kejriwal (2005)
Ben Madore (2005)
Chris Martens (2008)
Matthew Rodriguez (2008, 2010)
Trisha Quan (2007)
Kevin McInerney (2007)
Tye Wang (2007)