Tue 25 Jun 2019 16:20 - 16:40 at 229AB - Dynamics: Analysis and Compilation Chair(s): Nadia Polikarpova

Analysing and comprehending C programs that use strings
is hard: using standard library functions for manipulating
strings is not enforced and programs often use complex loops
for the same purpose. We introduce the notion of memoryless
loops that capture some of these string loops and present a
counterexample-guided synthesis approach to summarise
memoryless loops using C standard library functions, which
has applications to testing, optimisation and refactoring.

We prove our summarisation is correct for arbitrary input
strings and evaluate it on a database of loops we gathered
from thirteen open-source programs. Our approach can summarise
over two thirds of memoryless loops in less than
five minutes of computation time per loop. We then show
that these summaries can be used to (1) improve symbolic
execution (2) optimise native code, and (3) refactor code.

Tue 25 Jun

Displayed time zone: Tijuana, Baja California change

16:00 - 17:00
Dynamics: Analysis and CompilationPLDI Research Papers at 229AB
Chair(s): Nadia Polikarpova University of California, San Diego
SemCluster: Clustering of Imperative Programming Assignments Based on Quantitative Semantic Features
PLDI Research Papers
David Mitchel Perry Purdue University, Dohyeong Kim Purdue University, Roopsha Samanta Purdue University, Xiangyu Zhang Purdue University
Pre-print Media Attached
Computing Summaries of String Loops in C for Better Testing and Refactoring
PLDI Research Papers
Timotej Kapus Imperial College London, Oren Ish-Shalom Tel Aviv University, Israel, Shachar Itzhaky Technion, Israel, Noam Rinetzky Tel Aviv University, Cristian Cadar Imperial College London
Link to publication Pre-print Media Attached
Reusable Inline Caching for JavaScript Performance
PLDI Research Papers
Jiho Choi University of Illinois at Urbana-Champaign, Thomas Shull University of Illinois at Urbana-Champaign, Josep Torrellas University of Illinois at Urbana-Champaign