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(Peephole Raw Pointer Rewriting)를 제안한다. C2RUST는 C 코드를 Rust 코드로 변환하지만, 생성된 코드는 안전하지 않은 구조체(raw pointers)에 의존하는 경우가 많다. PR2는 개별 함수 내의 raw pointers를 적절한 Rust 데이터 구조체로 변환하는 peephole 방식을 사용하며, 의사결정 트리 기반 프롬프팅과 코드 변경 분석을 통해 변환 과정의 오류를 수정한다. 28개의 실제 C 프로젝트를 대상으로 gpt-4o-mini를 이용한 실험 결과, PR2는 평균 13.22%의 local raw pointers를 제거하여 Rust 코드의 안전성을 향상시켰으며, 프로젝트 변환에 평균 5.44시간과 $1.46의 비용이 소요되었다.

시사점, 한계점

시사점:
C2RUST를 이용한 C-to-Rust 변환 과정에서 발생하는 안전하지 않은 코드(raw pointers)의 문제점 해결에 기여한다.
PR2 기법을 통해 Rust 코드의 메모리 안전성을 향상시킬 수 있다.
의사결정 트리 기반 프롬프팅과 코드 변경 분석을 활용한 효과적인 오류 수정 전략을 제시한다.
한계점:
모든 raw pointers를 제거하지 못하고, 13.22%만 제거했다. 전체 raw pointers 제거를 위한 추가적인 연구가 필요하다.
gpt-4o-mini를 사용하여 평가되었으므로, 다른 환경이나 모델에서의 성능은 다를 수 있다.
프로젝트 변환에 평균 5.44시간이 소요되는 점은 향상의 여지가 있다.
실험에 사용된 C 프로젝트의 규모와 복잡도에 따라 성능이 달라질 수 있다.
👍