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.

Conference Day
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 PolikarpovaUniversity of California, San Diego
SemCluster: Clustering of Imperative Programming Assignments Based on Quantitative Semantic Features
PLDI Research Papers
David Mitchel PerryPurdue University, Dohyeong KimPurdue University, Roopsha SamantaPurdue University, Xiangyu ZhangPurdue University
Pre-print Media Attached
Computing Summaries of String Loops in C for Better Testing and Refactoring
PLDI Research Papers
Timotej KapusImperial College London, Oren Ish-ShalomTel Aviv University, Israel, Shachar ItzhakyTechnion, Israel, Noam RinetzkyTel Aviv University, Cristian CadarImperial College London
Link to publication Pre-print Media Attached
Reusable Inline Caching for JavaScript Performance
PLDI Research Papers
Jiho ChoiUniversity of Illinois at Urbana-Champaign, Thomas ShullUniversity of Illinois at Urbana-Champaign, Josep TorrellasUniversity of Illinois at Urbana-Champaign