Null pointers and their eponymous exceptions form one of the most prevalent classes of errors permitted by modern software engineering practice, and they have been called “the billion dollar mistake” in programming language design. Any Java reference is potentially allowed to be null, and although dereferences are checked at runtime, the semantics of unwinding the stack at arbitary usages of non-primitive types are not conducive to graceful error recovery. Thus static analysis is required. A simple fully-static solution is necessarily plagued with false positives, though. Some tools reduce this issue by adding complexity to the analysis. Others rely on user-provided annotations, but do so in an unprincipled way that isn’t immediately generalizable to other analyses. While the Abstracting Gradual Typing framework has been very successful in a variety of formal type systems, this is its first application to program analysis. We gradualize a very simple static analysis to demonstrate the applicability of the AGT framework in the dataflow analysis setting; this lays the groundwork for the gradualization of far more sophisticated analyses.
This program is tentative and subject to change.
Wed 23 Oct
|18:00 - 18:11|
Beatriz SouzaFederal University of Campina Grande
|18:11 - 18:22|
|18:22 - 18:33|
Dominik AumayrJohannes Kepler University Linz, Austria
|18:33 - 18:45|
|18:45 - 18:56|
Muna AltherwiSouthampton University
|18:56 - 19:07|
Florian LatifiJohannes Kepler University LinzDOI Pre-print
|19:07 - 19:18|
|19:18 - 19:30|
Maarten P. SijmDelft University of Technology