Daily Arxiv

전 세계에서 발간되는 인공지능 관련 논문을 정리하는 페이지 입니다.
본 페이지는 Google Gemini를 활용해 요약 정리하며, 비영리로 운영 됩니다.
논문에 대한 저작권은 저자 및 해당 기관에 있으며, 공유 시 출처만 명기하면 됩니다.

PR2: Peephole Raw Pointer Rewriting with LLMs for Translating C to Safer Rust

Created by
  • Haebom

저자

Yifei Gao, Chengpeng Wang, Pengxiang Huang, Xuwei Liu, Mingwei Zheng, Xiangyu Zhang

개요

본 논문은 C 코드를 Rust 코드로 변환하는 도구인 C2RUST가 생성하는 Rust 코드의 메모리 안전성을 향상시키는 기법인 PR2를 제안합니다. PR2는 개별 함수 내의 raw pointer를 적절한 Rust 데이터 구조로 변환하는 peephole 최적화 기법으로, 의사결정 트리 기반 프롬프팅과 코드 변경 분석을 활용하여 raw pointer 제거 및 오류 수정을 수행합니다. gpt-4o-mini를 사용한 28개의 실제 C 프로젝트 실험 결과, PR2는 평균 13.22%의 local raw pointer를 제거하여 Rust 코드의 안전성을 향상시켰으며, 프로젝트 변환에 평균 5.44시간, $1.46의 비용이 소요됨을 보였습니다.

시사점, 한계점

시사점:
C2RUST를 이용한 C-to-Rust 변환 과정에서 발생하는 메모리 안전성 문제 해결에 기여합니다.
raw pointer 제거를 통한 Rust 코드의 안전성 향상 및 유지보수 용이성 증대에 기여합니다.
의사결정 트리 기반 프롬프팅과 코드 변경 분석을 활용한 자동화된 코드 변환 기법을 제시합니다.
한계점:
28개의 실제 C 프로젝트에 대한 평가는 상대적으로 작은 규모의 실험입니다.
모든 raw pointer를 제거하지 못하고 13.22%만 제거하였습니다. 더 많은 raw pointer를 제거할 수 있는 추가적인 연구가 필요합니다.
gpt-4o-mini 사용에 따른 비용이 발생하며, 이 비용이 다른 방법에 비해 경제적인지에 대한 추가적인 분석이 필요합니다.
global raw pointer나 더 복잡한 pointer manipulation에 대한 처리 방식은 추가적인 연구가 필요합니다.
👍