Skip to main content

Jonathan Aldrich

Associate Professor, School of Computer Science

[Email]

Jonathan Aldrich

Research Areas

Survivable Distributed Systems

Cross Cutting Thrusts

Formal Methods, Next Generation Threat Prediction and Response, Software Security

Biography

Jonathan Aldrich is an Associate Professor of the School of Computer Science. He does programming languages and software engineering research focused on developing better ways of expressing and enforcing 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 received a 2006 NSF CAREER award and the 2007 Dahl-Nygaard Junior Prize (press release, article).

His homepage can be found at http://www.cs.cmu.edu/~aldrich/.

Education

Ph.D.,Computer Science and Engineering, University of Washington, August 2003.

Advisors: Craig Chambers and David Notkin. 
Thesis: Using Types to Enforce Architectural Design

M.S., Computer Science and Engineering, University of Washington, June 1999.

B.S., Engineering and Applied Science (Computer Science), California Institute of Technology, June 1997.

Research Projects

Security Patterns: Assurance for Secure Concurrent and Distributed Computing

Cross Cutting Thrusts: Software Security | Next Generation Threat Prediction and Response | Formal Methods
Researchers: William Scherlis, Jonathan Aldrich

Targeted Software Assurance

Research Area: Survivable Distributed Systems
Cross Cutting Thrusts: Software Security | Formal Methods
Researchers: William Scherlis, Jonathan Aldrich

Deep Software Assurance: Requirements, Techniques, Field Experience

Cross Cutting Thrusts: Software Security
Researchers: Jonathan Aldrich, William Scherlis

Open Source & Outsourced Software Acceptance Evaluation & Assurance

Researchers: James Herbsleb, Jonathan Aldrich

Publications

"A Theory of Tagged Objects". Joseph Lee, Jonathan Aldrich, Troy Shaw, and Alex Potanin. Proc. European Conference on Object-Oriented Programming (ECOOP), 2015

"Searching the State Space: A Qualitative Study of API Protocol Usability". Joshua Sunshine, James Herbsleb and Jonathan Aldrich. Proc. International Conference on Program Comprehension (ICPC), 2015.

"Foundations of Typestate-Oriented Programming". Ronald Garcia, Éic Tanter, Roger Wolff, and Jonathan Aldrich. Transactions on Programming Languages and Systems 36(4) article 12, 2014.

"Statically Typed String Sanitation Inside a Python". Nathan Fulton, Cyrus Omar, and Jonathan Aldrich. Proc. Privacy and Security in Programming (PSP), 2014

"Language-Based Architectural Control". Jonathan Aldrich, Cyrus Omar, Alex Potanin, and Du Li. In International Workshop on Aliasing, Capabilities, and Ownership (IWACO '14), 2014

"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.

"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 Pro

"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.

"Permission-Based Programming Languages (NIER Track)". Jonathan Aldrich, Ronald Garcia, Mark Hahnenberg, Manuel Mohr, Karl Naden, Darpan Saini, Sven Stork, Joshua Sunshine, Éric Tanter, and Roger Wolff. In Proceedings of the International Conference on Software Engineering (ICSE '11), New Ideas and Emerging Results Track, 2011. gramming (ECOOP '11), 2011.