‹Programming› 2020
Mon 23 - Thu 26 March 2020 Porto, Portugal
Thu 26 Mar 2020 11:00 - 11:30 at Auditorium - Machines Thinking about Programs Chair(s): Coen De Roover

Researchers have developed various techniques for static analysis of JavaScript to improve analysis precision. To develop such techniques, they first identify causes of the precision losses for unproven proper- ties. While most of the existing work has diagnosed main causes of imprecision in static analysis by manual investigation, manually tracing the imprecision causes is challenging because it requires detailed knowledge of analyzer internals. Recently, several studies proposed to localize the analysis imprecision causes automatically, but these localization techniques work for only specific analysis techniques. In this paper, we present an automatic technique that can trace analysis imprecision causes of JavaScript applications starting from user-selected variables. Given a set of program variables, our technique stops an analysis when any of the variables gets imprecise analysis values. It then traces the imprecise analysis values using intermediate analysis results back to program points where the imprecision first started. Our technique shows the trace information with a new representation called tracing graphs, whose nodes and edges together represent traces from imprecise points to precise points. In order to detect major causes of analysis imprecision automatically, we present four node/edge patterns in tracing graphs for common imprecision causes. We formalized the technique of generating tracing graphs and identifying patterns, and implemented them on SAFE, a state-of-the-art JavaScript static analyzer with various analysis configurations, such as context- sensitivity, loop-sensitivity, and heap cloning. Our evaluation demonstrates that the technique can easily find 96% of the major causes of the imprecision problems in 17 applications by only automatic detection in tracing graphs using the patterns, and selectively adopting various advanced techniques can eliminate the found causes of imprecision.

Thu 26 Mar

Displayed time zone: Belfast change

11:00 - 12:30
Machines Thinking about ProgramsResearch Papers at Auditorium
Chair(s): Coen De Roover Vrije Universiteit Brussel
11:00
30m
Research paper
Automatically Tracing Imprecision Causes in JavaScript Static Analysis
Research Papers
Hongki Lee Korea Advanced Institute of Science and Technology, Changhee Park KAIST, Sukyoung Ryu KAIST
Link to publication DOI Pre-print
11:30
30m
Research paper
Constructing Hybrid Incremental Compilers for Cross-Module Extensibility with an Internal Build System
Research Papers
Jeff Smits Delft University of Technology, Gabriël Konat Delft University of Technology, Eelco Visser Delft University of Technology
Link to publication DOI Pre-print
12:00
30m
Research paper
Reusing Static Analysis across Different Domain-Specific Languages using Reference Attribute Grammars
Research Papers
Johannes Mey Technische Universität Dresden, Thomas Kühn Karlsruhe Institute of Technology, René Schöne Technische Universität Dresden, Uwe Aßmann TU Dresden, Germany
Link to publication DOI Pre-print