The Unreasonable Effectiveness of Fuzzing for Porting Programs
a year ago
- #LLMs
- #Fuzzing
- #Code Porting
- 大语言模型正越来越多地用于自动化代码移植,例如从C到Rust,通过编写模糊测试并按照拓扑顺序构建移植版本。
- TensorFlow的维护挑战突显了大语言模型通过自动化大规模重构和移植任务来减少技术债务的潜力。
- 属性测试和模糊测试是确保自动化移植过程中正确性的有效策略,通过比较原始代码与移植代码的输出结果。
- 一个实际案例展示了使用大语言模型将Zopfli从C移植到Rust的过程,以最少的人工干预实现了完全一致的结果。
- 尽管取得了成功,但仍存在挑战,例如生成符合Rust语言习惯的代码,以及在没有人工监督的情况下完全自动化移植流程。