• Publications
  • Influence
Automated repair of HTML generation errors in PHP applications using string constraint solving
TLDR
A novel approach to automatically repair HTML generation errors in PHP programs, targeting a common class of repairs based on adding, modifying, and removing statements that print string literals. Expand
  • 103
  • 7
  • PDF
Falling Back on Executable Specifications
TLDR
We describe a new approach to employing specifications for software reliability. Expand
  • 56
  • 4
  • PDF
Call by Meaning
Software development involves stitching existing components together. These data/service components are usually not well understood, as they are made by others and often obtained from somewhere onExpand
  • 7
  • 1
  • PDF
Declarative mocking
TLDR
This paper presents "declarative mocking", which enables the creation of expressive and reliable mock objects with relatively little effort. Expand
  • 16
  • PDF
Constraints as a design pattern
TLDR
We propose a general programming model to leverage many benefits of constraint-based programming such as understandability, behavioral modularity, extensibility, etc., in a practical way and without suffering the breakdown of the approach. Expand
  • 2
Specification-based sketching with Sketch
TLDR
We introduce a new tool employing the sketching synthesis technique in programs annotated with declarative contracts. Expand
  • 2
  • PDF
Timing Analysis of Event-Driven Programs with Directed Testing
TLDR
We present a new dynamic approach called event-driven directed testing. Expand
Constraints as a Design Pattern From SKETCHPAD 61 to SKETCHPAD 14
Imperative programming has great merits. As the ubiquitous style, it is familiar and its linear, step by step nature is favored by the human mind. Expert programmers, however, are aware of its majorExpand
Programming as Planning
Inspired by the success of Planning as Satisfiability, SatPlan, we present methodologies for viewing everyday programming problems as planning problems, thus converting presumably complex programsExpand
From Validation to Automated Repair & Beyond with Constraint Solving
TLDR
The key insight of this dissertation is that we can leverage the efforts that developers currently put into the validation of software, such as unit tests and formal verification, to get software engineering benefits that can go beyond validation, including automated software repair. Expand