~/talk

Optimizing Type Migration for LLM-Based C-to-Rust Translation: A Data Flow Graph Approach

Talkat SOAP 2025 · on Monday, 2025-06-16· [ai-assisted-development]
links:none on file
links:none on file
slides:none on file

Manual translation of the Gzip C package using LLMs and static analysis documents concrete fixes: extract data flow graphs with CLAN, prompt o1/ChatGPT01 to map pointers to Box/Slice/Index based on malloc/indexing/arithmetic, and replace risky globals with enum indicators to avoid multiple mutable borrows. The Rust build passes 64/69 tests, 151 globals and 76 locals are annotated, the method introduces 14 enum indicators, and pointer experiments produce only 2 pointer mistakes while a baseline misclassifies most pointers.

AI-written summary · about

  1. 0:00LLM code translation intro
  2. 1:05Repository-level C-to-Rust challenges
  3. 2:53Type migration with mutable refs
  4. 5:45Pointer type migration
  5. 8:56Data flow graphs for optimization
  6. 11:04Experimental results and enums
  7. 12:28Pointer type mapping
  8. 13:31Gaps and future work
~/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.