Research
A single principle runs through our research: modular reasoning, the ability to understand and change one part of a system without grappling with the whole. We design the languages and interfaces that make modular reasoning possible, and we reframe software-analysis tasks so that this reasoning scales to millions of programs. Today the principle matters most for AI-enabled systems: we decompose learned models into modules and bring software-engineering rigor to the AI that society increasingly depends on, so it can be built, debugged, and trusted.
View our work on Google Scholar →
Complete publication record: Google Scholar, DBLP, and our lab.
Modularity & Modular Reasoning
Languages, interfaces, and contracts for reasoning about complex software one module at a time.
Thrust 02Software at Scale, with Boa
Expressing software-analysis tasks modularly so they run across the world's open-source code.
Thrust 03Modular & Dependable AI
Decomposing learned models into modules and bringing software-engineering rigor to AI-enabled systems.
Modularity & Modular Reasoning
We design languages, interfaces, and contracts that let engineers reason about complex software one module at a time, from aspect-oriented design and Classpects to Ptolemy's quantified, typed events, capsule-oriented Panini, and translucid contracts for modular verification.
- Hridesh Rajan, An Experiential Introduction to Principles of Programming Languages. MIT Press, 2022.
- Ptolemy: A Language with Quantified, Typed Events. ECOOP 2008.
- Classpects: Unifying Aspect- and Object-Oriented Language Design. ICSE 2005.
- Modular Software Design with Crosscutting Interfaces. IEEE Software, 2006.
More publications
- Modular Aspect-Oriented Design with XPIs. ACM TOSEM, 2010.
- Translucid Contracts: Modular Verification for Aspect-Oriented Interfaces. AOSD 2011.
- Capsule-Oriented Programming. ICSE 2015.
- Panini: A Concurrent Programming Model for Pervasive and Oblivious Interference. Modularity 2015.
- Nu: A Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine. AOSD 2008.
- Eos: Instance-Level Aspects for Integrated System Design. ESEC/FSE 2003.
Selected funding: NSF CAREER: On Mutualism of Modularity and Concurrency Goals (2009–2016) · NSF SHF Small: Capsule-oriented Programming (2014–2018).
Software at Scale, with Boa
The hard question behind Boa was not how to store hundreds of thousands of repositories, but how to express software-analysis tasks modularly so they can be decomposed and run across a massive collection of programs. Boa is the language and infrastructure that answers it, and the result is large-scale empirical software engineering the whole community can use.
- Boa: A Language and Infrastructure for Analyzing Ultra-Large-Scale Software Repositories. ICSE 2013.
- Boa: Ultra-Large-Scale Software Repository and Source-Code Mining. ACM TOSEM, 2015.
- Mining Billions of AST Nodes to Study Java Language Features. ICSE 2014.
More publications
- Are Code Examples on Stack Overflow Reliable? A Study of API Misuse. ICSE 2018.
- A Study of Repetitiveness of Code Changes in Software Evolution. ASE 2013.
- Mining Preconditions of APIs in Large-Scale Code Corpus. FSE 2014.
- Declarative Visitors to Ease Fine-Grained Source-Code Mining. GPCE 2013.
- Boa Meets Python: A Boa Dataset of Data Science Software. MSR 2019.
Selected funding: NSF CCRI: Boa 2.0 (2021–2024) · NSF CI-EN: Boa (2015–2018).
Modular & Dependable AI
Modular reasoning extended to AI-enabled systems. We decompose learned models such as deep neural networks into reusable, replaceable modules, and we work to make AI software dependable through the first comprehensive study of deep-learning bugs, fault localization and repair for neural networks, and fairness across machine-learning pipelines.
- A Comprehensive Study on Deep Learning Bug Characteristics. ESEC/FSE 2019.
- On Decomposing a Deep Neural Network into Modules. ESEC/FSE 2020.
- DeepLocalize: Fault Localization for Deep Neural Networks. ICSE 2021.
- Mock Deep Testing: Toward Separate Development of Data and Models for Deep Learning. ICSE 2025.
More publications
- Fair Preprocessing: Compositional Fairness of Data Transformers in ML Pipelines. ESEC/FSE 2021.
- Repairing Deep Neural Networks: Fix Patterns and Challenges. ICSE 2020.
- Decomposing Convolutional Neural Networks into Reusable and Replaceable Modules. ICSE 2022.
- Fairify: Fairness Verification of Neural Networks. ICSE 2023.
- Mutation-Based Fault Localization of Deep Neural Networks. ASE 2023.
- IRepair: An Intent-Aware Approach to Repair Data-Driven Errors in Large Language Models. FSE 2025.
Selected funding: NSF SHF Small: More Modular Deep Learning (2022–2025) · NSF SHF Small (Collaborative): Fault Localization for Deep Learning (2026–2029).
The bridge. Modular deep learning, decomposing trained networks into modules that can be reused and replaced, carries modular reasoning directly from classical software into AI-enabled systems.
Joining the lab
We recruit undergraduate students, graduate students, postdoctoral fellows, and in some cases research scientists across all three thrusts. If these questions resonate with you, I would like to hear from you.