• Publications
  • Influence
Correlation Tracking for Points-To Analysis of JavaScript
TLDR
We identify correlated dynamic property accesses as a common code pattern that is analyzed very imprecisely by the standard analysis, and show how a novel correlation tracking technique enables us to handle this pattern more precisely, thereby making the analysis more scalable. Expand
  • 101
  • 11
  • PDF
Sound and extensible renaming for java
TLDR
We present a novel extensible technique for creating symbolic names that are guaranteed to bind to a desired entity in a particular context by inverting lookup functions, allowing the refactoring to proceed and improve on the problem with too strong preconditions. Expand
  • 93
  • 11
  • PDF
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
  • 104
  • 7
  • PDF
Efficient construction of approximate call graphs for JavaScript IDE services
TLDR
The rapid rise of JavaScript as one of the most popular programming languages of the present day has led to a demand for sophisticated IDE support similar to what is available for Java or C#. Expand
  • 80
  • 6
  • PDF
Specifying and implementing refactorings
TLDR
We show in this work that these concepts are powerful enough to provide high-level specifications of many of the refactorings implemented in Eclipse. Expand
  • 75
  • 5
  • PDF
Refactoring Java programs for flexible locking
TLDR
We present Relocker, an automated tool that assists programmers with refactoring synchronized blocks into ReentrantLocks and ReadWriteLocks, to make exploring the performance tradeoffs among these constructs easier. Expand
  • 47
  • 5
  • PDF
Stepping Stones over the Refactoring Rubicon
TLDR
Refactoring tools allow the programmer to pretend they are working with a richer language where the behaviour of a program is automatically preserved during restructuring. Expand
  • 62
  • 3
Dynamic determinacy analysis
TLDR
We present an analysis for identifying determinate variables and expressions that always have the same value at a given program point. Expand
  • 54
  • 3
  • PDF
A Comprehensive Approach to Naming and Accessibility in Refactoring Java Programs
TLDR
We introduce JL, a lookup-free, access control-free representation of Java programs. Expand
  • 31
  • 3
  • PDF
Tool-supported refactoring for JavaScript
TLDR
Refactoring is a popular technique for improving the structure of existing programs while maintaining their behavior. Expand
  • 46
  • 2
  • PDF