get your very own PLASMA t-shirt!

The PLASMA group, led by Professors Emery Berger, Yuriy Brun, and Arjun Guha, is working on a variety of exciting topics that span the space of programming languages 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), and much more.

PhD. students
Dan Barowy
Charlie Curtsinger
Dimitar Gochev
Tongping Liu
Emma Tosch
John Vilk
Welcome new PLASMA students this year!
Tony Ohmann
Ted Smith
AutoMan: Programming with People
CheckCell: Data Debugging for Spreadsheets
Doppio: JVM in JavaScript
Dthreads: Efficient Deterministic Multithreading
Sheriff: False Sharing Detector / Eliminator
Stabilizer: Statistically Sound Performance Analysis
DieHard: Error-resistant Runtime System
Hoard: Fast, Scalable Malloc for Multicore
more software,

PLASMA classes

CMPSCI 521/621: Advanced Software Engineering: Analysis and Evaluation (Brun)
CMPSCI 521/621 covers advanced topics in software engineering, such as automating software engineering tasks, static and dynamic analyses, model inference, model checking, formal verification, type and generics inference, bug localization, mutation and regression testing, and symbolic execution.

CMPSCI 630: Systems (Berger)
CMPSCI 630 is an in-depth introduction to systems, focusing on principles of system design that cross-cut numerous systems artifacts, including operating systems, databases, runtime systems, and architecture. This class covers all levels of the "system stack", from chips to distributed systems.

CMPSCI 691F: Programming Languages (Guha)
CMPSCI 691F surveys the principles of modern programming languages by implementation. Topics include building interpreters for several kinds of programming languages, type-inference algorithms, program analyses, and program verification. This course will conclude with topics that bridge to compilers and runtime systems, including program transformations and garbage collection.

recent news

[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 to 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 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

[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 (draft version)
[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
[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
[PLDI 2001] Composing high-performance memory allocators
[ASPLOS-IX] Hoard: a scalable memory allocator for multithreaded applications


Matthew Hertz (PhD., Assoc. Prof., Canisius College)
Divya Krishnan (M.S., at Cisco Systems)
Vitaliy Lvin (M.S., at Google)
Yi (Eric) Feng (M.S., at Google)
Gene Novark (PhD., at Morgan Stanley)
Ting Yang (PhD., at Facebook)
Justin Aquadro (M.S.)