Dr. Jonathan Aldrich
Professor; Director, Software Engineering Ph.D. program, Software and Societal Systems
Bio
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 programmer 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 release, article). Right now I'm excited to be working on the design of Wyvern, a new modularly extensible programming language.
Projects
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