ISSTA 2025
Wed 25 - Sat 28 June 2025 Trondheim, Norway
co-located with FSE 2025
Wed 25 Jun 2025 14:50 - 15:15 at Aurora C - Runtime Analysis, Verification, and Slicing Chair(s): Heqing Huang

A traditional program slicer constructs a smaller variant of a target program that computes the same result with respect to some target variable—that is, program slicing preserves the original program’s \emph{run-time semantics}. We propose \emph{type-directed slicing}, which constructs a smaller program that guarantees that a typechecker will produce the same result on the sliced program when considering only a target program location—that is, a type-directed slicer preserves the target program’s \emph{compile-time semantics}, from the view of a specific typechecker, with respect to some location.

Type-directed slicing is a useful debugging aid for designers and maintainers of typecheckers. When a typechecker produces an unexpected result (a crash, a false positive warning, a missed warning, etc.) on a large codebase, the user typically reports a bug to the maintainers of the typechecker without an accompanying test case showing the analysis’ misbehavior in isolation. State-of-the-art approaches to this \emph{program reduction problem} are dynamic: they require repeatedly running the typechecker on the full program. A type-directed slicer solves this problem statically, without rerunning the typechecker, by exploiting the modularity inherent in a typechecker’s type rules. Our prototype type-directed slicer for Java is fully-automatic, can operate on incomplete programs, and is fast. It automatically produces a small test case that preserves typechecker misbehavior for 25 of 28 (89%) historical bugs from the issue trackers of three widely-used typecheckers: the Java compiler itself, NullAway, and the Checker Framework; in each of these 25 cases, it preserved the typechecker’s behavior even without the classpath of the target program. And, it runs in under a minute on each benchmark, whose size ranges up to millions of lines of code, on a free-tier CI runner.

Wed 25 Jun

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

14:00 - 15:15
Runtime Analysis, Verification, and SlicingResearch Papers at Aurora C
Chair(s): Heqing Huang City University of Hong Kong
14:00
25m
Talk
Adding Spatial Memory Safety to EDK II through Checked C (Experience Paper)
Research Papers
Sourag Cherupattamoolayil Purdue University, Arunkumar Bhattar Purdue University, Connor Everett Glosner Purdue University, Aravind Machiry Purdue University
DOI
14:25
25m
Talk
LogBase: A Large-Scale Benchmark for Semantic Log Parsing
Research Papers
Chenbo Zhang Fudan University, Wenying Xu Fudan University, Jinbu Liu Alibaba, Lu Zhang Fudan University, Guiyang Liu Alibaba, Jihong Guan Tongji University, Qi Zhou Alibaba, Shuigeng Zhou Fudan University
DOI
14:50
25m
Talk
Static Program Reduction via Type-Directed Slicing
Research Papers
Loi Ngo Duc Nguyen University of California, Riverside, Tahiatul Islam New Jersey Institute of Technology, Theron Wang The Academy for Mathematics, Science & Engineering, USA, Sam Lenz New Jersey Institute of Technology, Martin Kellogg New Jersey Institute of Technology
DOI Pre-print

Information for Participants
Wed 25 Jun 2025 14:00 - 15:15 at Aurora C - Runtime Analysis, Verification, and Slicing Chair(s): Heqing Huang
Info for room Aurora C:

Aurora C is the third room in the Aurora wing.

When facing the main Cosmos Hall, access to the Aurora wing is on the right, close to the side entrance of the hotel.

:
:
:
: