The Unreasonable Effectiveness of Fuzzing for Porting Programs
a year ago
- #LLMs
- #Fuzzing
- #Code Porting
- LLMs are increasingly used to automate code porting, such as from C to Rust, by writing fuzz tests and building ports in topological order.
- TensorFlow's maintenance challenges highlight the potential for LLMs to reduce technical debt by automating large-scale refactoring and porting tasks.
- Property testing and fuzzing are effective strategies for ensuring correctness during automated porting, comparing outputs between original and ported code.
- A practical example demonstrates porting Zopfli from C to Rust using LLMs, achieving identical results with minimal manual intervention.
- Despite successes, challenges remain, such as producing idiomatic Rust code and fully automating the porting process without human oversight.