~/talk

Semantic Code Refactoring for Abstract Data Types

Talkat POPL 2024 · 2024-01-14..01-20· [developer-experience]
links:none on file
links:none on file
links:none on file
slides:none on file

Automates ADT refactoring by taking an original implementation, a new data layout and a relational representation invariant, then synthesizing each method via a CEGIS loop that reduces relational synthesis to programming-by-example, uses symbolic abduction to mine code snippets and exploits partial equivalence to compose partial solutions. Tool called Revamp refactors 29 of 30 Java ADTs (144 of 146 methods), runs in under five minutes on average, and outperforms several baselines.

AI-written summary · about

  1. 0:00Introduction
  2. 2:10ADT refactoring challenges
  3. 4:55Relational invariants
  4. 7:26Revamp tool overview
  5. 8:53Rectangle ADT refactoring
  6. 11:01Synthesis via examples
  7. 13:54Accelerating search
  8. 14:37Evaluation results
  9. 16:22Conclusion
  10. 16:42Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.