The award-winning PLASMA group, led by Professors Emery Berger, Yuriy Brun, and Arjun Guha, does cool stuff that matters. We are working on a variety of exciting topics that span programming languages, software engineering, and systems. Current projects include systems that secure legacy software from attack, "programming with people", automatic bug analysis and elimination (including correctness and performance bugs), automatically inferring software API and documentation, programming languages for software-defined networking, and much more.

PhD students
Samuel Baxter
Breanna Devore-McDonald
Abhinav Jangda
Tony Ohmann
Bobby Powers
Rian Shambaugh
John Vilk
 
software
AutoMan: Programming with people
Browsix: Unix in your browser tab
CheckCell: Data debugging for spreadsheets
Coz: A causal profiler
Doppio: JVM in JavaScript
Dthreads: Efficient deterministic multithreading
Sheriff: False sharing detector & eliminator
Stabilizer: Statistically sound performance analysis
SurveyMan: A programming language for surveys
DieHard: Error-resistant runtime system
Hoard: Fast, scalable malloc for multicore
Synoptic: Automated model inference
CSight: Concurrency modeling
Perfume: Performance-aware model inference
more software, github.com/plasma-umass
 

PLASMA courses (full list)

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

recent news

[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.
[December 2016] VoxPL accepted to appear at CHI 2017.
[November 2016] Browsix accepted to appear at ASPLOS 2017.
Prof. Berger gives invited talk (Programming with People) at HCOMP Workshop on Mathematical Foundations of Human Computation.
Charlie Curtsinger (PLASMA alum) wins the Honorable Mention for the SIGOPS Dennis Ritchie Dissertation Award for his thesis, Performance Analysis and Debugging.
[October 2016] A Fast Compiler for NetKAT is selected to be an ACM SIGPLAN Research Highlight.
Prioritized garbage collection: explicit GC support for software caches presented at OOPSLA 2016.
[August 2016] Distributed system debugging paper appears in Communications of the ACM.
[July 2016] Prof. Brun receives an NSF grant to fund research on high-quality automated program repair.
[June 2016] Rehearsal: A Configuration Verification Tool for Puppet wins the Distinguished Artifact Award at PLDI 2016.
DieHard wins the Most Influential Paper Award at PLDI 2016.
AutoMan: A Platform for Integrating Human-Based and Digital Computation appears as a CACM Research Highlight.
[January 2016] Rehearsal: A Configuration Verification Tool for Puppet accepted to PLDI 2016.
[December 2015] DoubleTake: Fast and Precise Error Detection via Evidence-Based Dynamic Analysis accepted to appear at ICSE 2016.
[November 2015] PLDI 2016 opens for submissions, with Prof. Berger as Program Chair.
Prof. Berger speaks at Northeastern, EPFL, and ETH on "Performance Matters".
[October 2015] Coz: Finding Optimizations that Count with Causal Profiling by Prof. Berger and Charlie Curtsinger wins Best Paper Award at SOSP 2015.
[September 2015] Prof. Brun receives a Google Faculty Research Award.
Prof. Brun receives an NSF grant to fund research on improving developer interfaces.
Charlie Curtsinger joins faculty of Grinnell College as Assistant Professor.
PLASMA student at prestigious internship: Ted Smith at Google.
[August 2015] Specification violations paper accepted to appear at ISSRE 2015.
Cross-platform API violations paper accepted to appear at ISSRE 2015.
A Fast Compiler for NetKAT presented at ICFP 2015.
Professor Berger gives invited talks at Microsoft Research and the University of Washington.
[July 2015] Automated repair paper accepted to appear at ASE 2015.
Development history management paper accepted to appear as a short paper at ASE 2015.
[June 2015] Automated repair paper accepted to appear at ESEC/FSE 2015.
FlashRelate appears at PLDI 2015; Dan Barowy wins Distinguished Artifact Award.
Professor Berger elected to SIGPLAN Executive Committee.
PLASMA students at prestigious internships: John Vilk at Microsoft Research (Redmond), Amee Trivedi at Oracle Labs, Tony Ohmann at Google, and Dan Barowy at IBM TJ Watson
[May 2015] Prof. Brun receives the ICSE 2015 Distinguished Reviewer Award.
[April 2015] Data testing paper accepted to appear at ISSTA 2015.
[March 2015] Self-adapting reliability paper accepted for publication in IEEE Transactions on Software Engineering.
Solstice paper accepted for publication in IEEE Transactions on Software Engineering.
[February 2015] John Vilk wins Facebook Fellowship.
AutoMan selected to appear as a CACM Research Highlight.
SurroundWeb paper by John Vilk accepted to appear at IEEE S&P (Oakland) 2015.
FlashRelate paper by Dan Barowy accepted to appear at PLDI 2015.
[January 2015] Prof. Brun receives the NSF CAREER award.
[December 2014] Resource-specification paper accepted for publication at FASE 2015.
[November 2014] Doppio selected as a SIGPLAN Research Highlight.
[October 2014] Best Paper Award for SurveyMan at OOPSLA 2014.
InvariMint paper accepted for publication in IEEE Transactions on Software Engineering.
[September 2014] Prof. Brun speaks about speculative analysis at Harvard.
[August 2014] Prof. Berger gives talks at Yahoo! Research, Google, and Facebook.
Prof. Guha wins a Google Faculty Research Award.
[July 2014] Perfume paper accepted for publication at ASE 2014.
[June 2014] Doppio wins the PLDI 2014 Distinguished Artifact Award.
CheckCell accepted for publication at OOPSLA 2014.
Plastic surgery paper accepted for publication at FSE 2014.
Model inference paper accepted for publication at FSE 2014.
[May 2014] PLASMA students at prestigious internships: John Vilk and Ted Smith at Microsoft Research (Redmond), Dan Barowy at Microsoft Research NYC, and Dimitar Gochev at Google.
[March 2014] Prof. Brun wins a Microsoft Research Software Engineering Innovation Foundation (SEIF) award.
Doppio paper accepted for publication at PLDI 2014 and granted an Artifact Evaluation Committee certificate.
Two PLASMA students, Dan Barowy and Charlie Curtsinger, serve on PLDI 2014 Artifact Evaluation Committee.
[January 2014] Concurrency modeling paper accepted for publication at ICSE 2014 in Hyderabad, India.
Prof. Brun speaks about speculative analysis at Carnegie Mellon University.
Type-based Verification of Web Sandboxes to appear in Journal of Computer Security.
[December 2013] Three papers accepted at POPL OBT 2014!
Prof. Brun speaks about model inference at Schloss Dagstuhl in Wadern, Germany.
[November 2013] New tech reports issued: CheckCell (Data Debugging), Doppio.
Predator: Predictive False Sharing Detection accepted for publication at PPoPP 2014.
Prof. Guha presents an invited tutorial on the the Frenetic Network Controller at FMCAD 2013.
Prof. Guha speaks at Wesleyan and Princeton on Language-based Web Security.
[October 2013] NetKAT: Semantic Foundations for Networks is accepted for publication at POPL 2014.
Prof. Brun's paper Early Detection of Collaboration Conflicts and Risks with Reid Holmes, Mike Ernst, and David Notkin selected as Spotlight Paper for October 2013 issue of IEEE Transactions on Software Engineering.
Prof. Brun speaks about Speculative Analysis at the SE@45 symposium.
Prof. Berger speaks at Brown and Tufts.
Prof. Guha gives a talk on the Frenetic Network Controller at the OCaml Users and Developers Workshop.
[August 2013] Prof. Brun receives the 2013 IEEE TCSC Young Achiever in Scalable Computing Award.
Prof. Berger speaks about Programming with People and Stabilizer at Microsoft Research.
[July 2013] Prof. Berger teaches summer course on Software Fault Tolerance and Correction at the 2013 HiPEAC Summer School; speaks about AutoMan at Telefónica R&D.
[June 2013] Solstice paper accepted to ESEC/FSE 2013.
[May 2013] Conflict prediction paper published in IEEE Transactions on Software Engineering.
Prof. Brun speaks about fortune-telling developer tools at UC Davis and about speculative analysis at Inria, Paris, France.
Students at prestigious summer internships: Charlie Curtsinger at Google, Dan Barowy at Microsoft Research Silicon Valley, Dimitar Gochev at IBM TJ Watson, Tongping Liu at Futurewei (Huawei Research), and John Vilk at Microsoft Research.
[April 2013] Prof. Berger receives Microsoft Research SEIF Award.
PLASMA accepted to the Google Summer of Code as a mentoring organization (177 chosen from 417 applications).
sTile paper published in IEEE Transactions on Dependable and Secure Computing.
Prof. Berger speaks about statistically sound performance evaluation (Stabilizer) at Google.
[March 2013] Tech report issued describing Doppio.
Prof. Brun speaks about sTile and smart redundancy at Microsoft Research, Redmond.
Prof. Brun speaks about speculative analysis at ASDS 2013.
Charlie Curtsinger presents work on Stabilizer at ASPLOS in Houston, Texas.
Prof. Berger gives invited talk on AutoMan at ETAPS Conference in Rome.
[February 2013] Histaroach paper accepted for publication at ICSE NIER 2013.
InvariMint paper accepted for publication at ICSE 2013.
[January 2013] Professors Yuriy Brun and Arjun Guha join PLASMA.
[December 2012] New Scientist magazine publishes article on our AutoMan project.
Prof. Berger gives talks on AutoMan at University of Marburg, Goethe University Frankfurt, and the ETH-Zurich CS Colloquium Series.
[November 2012] Stabilizer paper accepted for publication at ASPLOS 2013.
[October 2012] Most Influential Paper Award at OOPSLA 2012 for Reconsidering Custom Memory Allocation [Berger, Zorn, and McKinley; OOPSLA 2002].
[July 2012] AutoMan paper accepted for publication at OOPSLA 2012.
[June 2012] Charlie Curtsinger wins a Google Fellowship in Software Performance, one of just 14 Fellowship recipients in the US and Canada.
Five PLASMA students on prestigious internships this summer: Dan Barowy at Microsoft Research (in Redmond), Charlie Curtsinger and Tongping Liu at IBM TJ Watson, Nitin Gupta at Intel, and John Vilk at Google.
[May 2012] Television interview with Prof. Emery Berger on the topic of Internet security.
[December 2011] Google Research Award for our work on performance profiling.
[October 2011] PLASMA students around the globe! Tongping Liu presented Sheriff at OOPSLA in Portland, while Charlie Curtsinger presented Dthreads at SOSP in Portugal.

selected publications

[ESEC/FSE 2017] Fairness Testing: Testing Software for Discrimination (pdf, ACM SIGSOFT Distinguished Paper Award)
[IEEE SMC] 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? (pdf)
[CHI 2017] VoxPL: Programming with the Wisdom of the Crowd (pdf)
[ASPLOS 2017] Browsix: Bridging the Gap Between Unix and the Browser
see browsix.org
[OOPSLA 2016] Prioritized garbage collection: explicit GC support for software caches (pdf)
[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)
[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)
[IEEE TSE] Self-Adapting Reliability in Distributed Software Systems (pdf)
[IEEE TSE] Reducing feedback delay of software development tools via continuous analyses (pdf)
[IEEE TSE] 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 doppiojvm.org
[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)
see stabilizer-tool.org
[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 (draft version)
see automan-lang.org
[ACM TECS 2012] PROARTIS: Probabilistically Analysable Real-Time Systems
see proartis-project.eu
[SOSP 2011] Dthreads: efficient deterministic multithreading
see dthreads.org
[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
[ASPLOS-XIII] 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
[PLDI 2007] Exterminator: automatically correcting memory errors with high probability
[PLDI 2006] DieHard: probabilistic memory safety for unsafe languages
[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
see HeapLayers.org
[ASPLOS-IX] Hoard: a scalable memory allocator for multithreaded applications
see hoard.org

alumni

Justin Aquadro (MS)
Charlie Curtsinger (PhD, Asst. Prof., Grinnell College)
Yi (Eric) Feng (MS, at Google)
Matthew Hertz (PhD, Assoc. Prof., Canisius College)
Divya Krishnan (MS, at Cisco Systems)
Tongping Liu (PhD, Assistant Professor, UTSA)
Vitaliy Lvin (MS, at Google)
Gene Novark (PhD, at Morgan Stanley)
Ted Smith (MS, Google)
Ting Yang (PhD, at Facebook)