Dr. Jonathan Aldrich
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 programmar 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.
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