The award-winning PLASMA group, led by Professors Emery Berger, Yuriy Brun, and Hui Guan, does cool stuff that matters. We work on a variety of exciting topics that span programming languages, software engineering, and systems.

PhD students
Juan Altmayer Pizzorno
Breanna Devore-McDonald
Abhinav Jangda
Bobby Powers
Sam Stern
Nicolas van Kempen
AutoMan: DSL for programming with people Star
BLeak: Automatically debug memory leaks in web apps Star
BrowserFS: In-browser mountable filesystem (pure JS) Star
Browsix: Unix in your browser tab Star
CSrankings: Web app for ranking CS departments Star
Coz: A causal profiler Star
DieHard: Error-resistant malloc for C/C++
DieHarder: Secure malloc
Exterminator: Automatically finds and corrects memory erorrs
Doppio: POSIX layer and JVM in pure JavaScript Star
ExceLint: Finds formula errors in Excel spreadsheets Star
Heap Layers: Template-based building blocks for custom and general-purpose allocators Star
Hoard: Fast, scalable malloc for multicore Star
Mesh: Compacting malloc Star
Scalene: A high-performance, high-precision CPU+GPU+memory profiler for Python
SlipCover: Near zero-overhead coverage analysis for Python
Stabilizer: Statistically sound performance analysis
Stopify: Enables building IDEs for languages compiled to JS Star
Tea: Automated statistical analysis

other cool stuff

Check out the Empirical Evaluation Guidelines we put together as part of a SIGPLAN initiative. The checklist (download the handy-dandy PDF here) is now recommended by several conferences, so make sure to use it when you are writing or reviewing papers!

recent talks

PLASMA courses (full list)

We teach a series of popular programming languages, systems, and software engineering courses, including software program analysis (CMPSCI 521/621) and a graduate courses on system design (CMPSCI 630). See the full list of courses we teach.

recent news

[October 2020]
Two PLASMA papers accepted to appear at OOPSLA 2020
[January 2020]
Two PLASMA talks make Cindy Sridharan's Best of 2019 in Tech Talks!
[December 2019]
Prof. Berger named an ACM Fellow.
[October 2019]
Three PLASMA papers to appear at OOPSLA!
[September 2019]
PLASMA paper selected to appear as a Communications of the ACM Research Highlight! (BLeak: Automatically Debugging Memory Leaks in Web Applications).
[June 2019]
Tea: A High-level Language and Runtime System for Automating Statistical Analysis accepted to appear at UIST 2019 (more at
[April 2019]
Not so fast: analyzing the performance of webassembly vs. native code to appear at USENIX ATC 2019.
[February 2018]
Two PLASMA papers accepted to appear at PLDI 2018: BLeak: Automatically Debugging Memory Leaks in Web Applications (BLeak) and Putting in All the Stops: Execution Control for JavaScript (Stopify).
[September 2017]
Fairness Testing: Testing Software for Discrimination wins an ACM SIGSOFT Distinguished Paper Award at ESEC/FSE 2017.
Prof. Brun receives NSF grant on software fairness testing.
Prof. Brun promoted to Associate Professor with tenure.
[July 2017]
Prof. Brun promoted to Senior Member of both the ACM and the IEEE.
[June 2017]
Fairness Testing: Testing Software for Discrimination accepted to ESEC/FSE 2017.
[May 2017]
Prof. Brun receives the UMass College of Information and Computer Science Outstanding Teacher Award.
[April 2017]
Prof. Brun receives a Lilly Fellowship for Teaching Excellence.
Continuous Analysis of Collaborative Design wins the Best Paper Award at ICSA 2017.
[March 2017]
Constraint-aware resource scheduling paper accepted to the IEEE Transactions on Systems, Man, and Cybernetics: Systems.
PLASMA PhD student Dan Barowy to join Williams College as an Assistant Professor, starting Fall 2017.
[February 2017]
Collaborative design paper accepted to ICSA 2017.
[January 2017]
Behavioral execution comparison paper accepted to ICST 2017.

selected publications

[OOPSLA 2019]
PlanAlyzer: Assessing Threats to the Validity of Online Experiments (CACM Research Highlight)
[UIST 2019]
Tea: A High-level Language and Runtime System for Automating Statistical Analysis
[PLDI 2019]
Mesh: Compacting Memory Management for C/C++ Applications (pdf)
[OOPSLA 2018]
ExceLint: automatically finding spreadsheet formula errors (pdf)
[PLDI 2018]
BLeak: Automatically Debugging Memory Leaks in Web Applications (CACM Research Highlight)
[ESEC/FSE 2017]
Fairness Testing: Testing Software for Discrimination (ACM SIGSOFT Distinguished Paper Award)
Discrete-Event Simulation and Integer Linear Programming for Constraint-Aware Resource Scheduling (pdf)
[ICSA 2017]
Continuous Analysis of Collaborative Design (pdf, Best Paper Award)
[ICST 2017]
Behavioral Execution Comparison: Are Tests Representative of Field Behavior?
[CHI 2017]
VoxPL: Programming with the Wisdom of the Crowd (pdf)
[ASPLOS 2017]
Browsix: Bridging the Gap Between Unix and the Browser
[OOPSLA 2016]
Prioritized garbage collection: explicit GC support for software caches
[PLDI 2016]
Rehearsal: A Configuration Verification Tool for Puppet
[ICSE 2016]
DoubleTake: Fast and Precise Error Detection via Evidence-Based Dynamic Analysis
[ISSRE 2015] Discovering Specification Violations in Networked Software Systems (pdf)
[ISSRE 2015]
Detecting Latent Cross-Platform API Violations (pdf)
[ICFP 2015]
A Fast Compiler for NetKAT (pdf)
[ASE 2015]
Repairing Programs with Semantic Code Search (pdf)
[SOSP 2015]
Coz: Finding Code that Counts with Causal Profiling (pdf, Best Paper Award, CACM Research Highlight)
[ESEC/FSE 2015]
Is the Cure Worse than the Disease? Overfitting in Automated Program Repair (pdf)
[ISSTA 2015]
Preventing Data Errors with Continuous Testing (pdf)
Self-Adapting Reliability in Distributed Software Systems (pdf)
Reducing feedback delay of software development tools via continuous analyses (pdf)
Using declarative specification to improve the understanding, extensibility, and comparison of model-inference algorithms (pdf)
[OOPSLA 2014]
SurveyMan: Programming and Automatically Debugging Surveys (Best Paper Award) (pdf)
[OOPSLA 2014]
CheckCell: Data Debugging for Spreadsheets (pdf)
[FSE 2014]
The Plastic Surgery Hypothesis (pdf)
[PLDI 2014]
Doppio: Breaking the Browser Language Barrier
see (Distinguished Artifact Award)
[ASE 2014]
Behavioral Resource-Aware Model Inference (pdf)
[PPoPP 2014]
Predator: Predictive False Sharing Detection
[ASPLOS 2013]
Stabilizer: Enabling Statistically Rigorous Performance Evaluation (draft version)
[ICSE 2013]
Unifying FSM-Inference Algorithms through Declarative Specification
[ICCSP 2013]
Supporting Process Undo and Redo in Software Engineering Decision Making
[TDSC 2013]
Entrusting Private Computation and Data to Untrusted Networks
[OOPSLA 2012]
Speculative Analysis of Integrated Development Environment Recommendations
[OOPSLA 2012]
AutoMan: A Platform for Integrating Human and Digital Computation (CACM Research Highlight)
[ACM TECS 2012]
PROARTIS: Probabilistically Analysable Real-Time Systems
[SOSP 2011]
Dthreads: efficient deterministic multithreading
[OOPSLA 2011]
Sheriff: precise detection and automatic mitigation of false sharing
[CCS 2010]
DieHarder: securing the heap
[ECRTS 2009]
Using Randomized Caches in Real-Time Systems
[OOPSLA 2009]
Grace: safe multithreaded programming for C/C++
[PLDI 2009]
Efficiently and precisely locating memory leaks and bloat
[OSDI 2008]
Redline: first class support for interactivity in commodity operating systems
Archipelago: trading address space for reliability and security
[SenSys 2007]
Eon: a language and runtime system for perpetual systems
[FAST 2007]
TFS: a transparent file system for contributory storage (Best Paper Award)
[PLDI 2007]
Exterminator: automatically correcting memory errors with high probability (CACM Research Highlight)
[PLDI 2006]
DieHard: probabilistic memory safety for unsafe languages (Most Influential Paper Award)
[OSDI 2006]
CRAMM: virtual memory support for garbage-collected applications
[USENIX 2006]
Transparent contribution of memory
[USENIX 2006]
Flux: a language for programming high-performance servers
[OOPSLA 2005]
Quantifying the performance of garbage collection vs. explicit memory management
[PLDI 2005]
Garbage collection without paging
[OOPSLA 2002]
Reconsidering custom memory allocation (Most Influential Paper Award)
[PLDI 2001]
Composing high-performance memory allocators
Hoard: a scalable memory allocator for multithreaded applications
see (Most Influential Paper Award)


Justin Aquadro (MS, MachineMetrics)
Dan Barowy (PhD, Asst. Prof., Williams College)
Charlie Curtsinger (PhD, Asst. Prof., Grinnell College)
Yi (Eric) Feng (MS, at Google)
Matthew Hertz (PhD, Univ. of Buffalo)
Divya Krishnan (MS, at Cisco Systems)
Tongping Liu (PhD, Assistant Professor, UMass ECE)
Vitaliy Lvin (MS, at Boston Dynamics)
Gene Novark (PhD, at PDT Partners)
Ted Smith (MS, Bloomberg LP)
John Vilk (PhD, Stripe)
Ting Yang (PhD, at Facebook)