Pointer Knowledge Graphs Improve C-to-Rust Translation
A new method using Pointer Knowledge Graphs (PKGs) enhances project-level C-to-Rust translation by LLMs. Existing LLM-based approaches partition C code into functions based on call graphs and translate bottom-up, but fail to handle pointers due to lack of global usage context. PKGs augment code dependency graphs with pointer usage information (e.g., points-to flows) and low-level struct interactions, enabling safer and more idiomatic Rust code. The approach addresses a key limitation in automated memory safety conversion.
Key facts
- arXiv:2510.10956v2
- Announce Type: replace-cross
- Translating C to Rust ensures memory safety
- LLM-based methods produce safer Rust than rule-based approaches
- Existing LLM methods struggle with project-level translation
- Current approaches partition C projects into functions using call graphs
- Pointer Knowledge Graphs augment code dependency graphs with pointer semantics
- PKGs capture points-to flows and low-level struct interactions
Entities
Institutions
- arXiv