~/talk

Don’t Write, but Return: Replacing Output Parameters with Algebraic Data Types in(…)

Talkat PLDI 2024 · 2024-06-24..06-28· [compilers-and-language-design]
links:none on file
links:none on file
slides:none on file

Automatic C-to-Rust pipeline runs a syntactic front end (czrust syntactic pass), then a static analysis based on abstract interpretation that tracks abstract read/write sets with write-set and nullity sensitivity, and finally program transformations that replace pointer output parameters with tuples or Result/Option and insert local PV/PW temporaries and call-site pattern matches. It analyzes 190k LOC in 213 seconds, detects 1,670 output parameters across 55 programs, and preserves behavior for 25 of 26 tested programs (one false positive from globals).

AI-written summary · about

  1. 0:00Introduction
  2. 2:12Output parameters in C
  3. 5:12C to Rust with C2Rust
  4. 6:14Finding output parameters
  5. 11:15Code to ADTs
  6. 13:45Evaluation on real programs
  7. 15:08Conclusion
  8. 15:33Q&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.