• Publications
  • Influence
The semantic foundations of concurrent constraint programming
Concurrent constraint programming [Sar89 ,SR90] is a simple and powerful model of concurrent computation based on the notions of store-as-constraint and process as information transducer. TheExpand
  • 478
  • 63
  • PDF
An analysis of patch plausibility and correctness for generate-and-validate patch generation systems
We analyze reported patches for three existing generate-and- validate patch generation systems (GenProg, RSRepair, and AE). The basic principle behind generate-and-validate systems is to accept onlyExpand
  • 254
  • 53
  • PDF
Automatic patch generation by learning correct code
We present Prophet, a novel patch generation system that works with a set of successful human patches obtained from open- source software repositories to learn a probabilistic,Expand
  • 297
  • 46
  • PDF
Information Flow Analysis of Android Applications in DroidSafe
We present DroidSafe, a static information flow analysis tool that reports potential leaks of sensitive information in Android applications. DroidSafe combines a comprehensive, accurate, and preciseExpand
  • 330
  • 45
  • PDF
Staged program repair with condition synthesis
We present SPR, a new program repair system that combines staged program repair and condition synthesis. These techniques enable SPR to work productively with a set of parameterized transformationExpand
  • 239
  • 42
  • PDF
Compositional pointer and escape analysis for Java programs
This paper presents a combined pointer and escape analysis algorithm for Java programs. The algorithm is based on the abstraction of points-to escape graphs, which characterize how local variablesExpand
  • 439
  • 37
  • PDF
Managing performance vs. accuracy trade-offs with loop perforation
Many modern computations (such as video and audio encoders, Monte Carlo simulations, and machine learning algorithms) are designed to trade off accuracy in return for increased performance. To date,Expand
  • 402
  • 35
  • PDF
Automatically patching errors in deployed software
We present ClearView, a system for automatically patching errors in deployed software. ClearView works on stripped Windows x86 binaries without any need for source code, debugging information, orExpand
  • 375
  • 31
  • PDF
Ownership types for safe programming: preventing data races and deadlocks
This paper presents a new static type system for multithreaded programs; well-typed programs in our system are guaranteed to be free of data races and deadlocks. Our type system allows programmers toExpand
  • 600
  • 25
  • PDF
Purity and Side Effect Analysis for Java Programs
We present a new purity and side effect analysis for Java programs. A method is pure if it does not mutate any location that exists in the program state right before the invocation of the method. OurExpand
  • 218
  • 21
  • PDF