Project-Level C-to-Rust Translation via Pointer Knowledge Graphs

Wed, 29 Apr 2026 08:16:43 GMT

### 저자

Zhiqiang Yuan, Wenjun Mao, Zhuo Chen, Xiyue Shang, Chong Wang, Yiling Lou, Xin Peng

### 💡 개요

본 연구는 C 코드를 안전한 Rust 코드로 자동 변환하는 데 있어 LLM 기반 접근 방식의 한계를 극복하고자 합니다. 이를 위해 포인터의 전역적인 사용 정보와 Rust 친화적인 어노테이션을 결합한 "C-to-Rust 포인터 지식 그래프(KG)"를 제안합니다. 이 KG를 활용하는 PtrTrans 방법론은 LLM에게 포괄적인 포인터 의미론을 제공하여 안전하고 관용적인 Rust 코드 생성을 돕습니다.

### 🔑 시사점 및 한계

- 기존 LLM 기반 C-to-Rust 번역 방식이 단위별 번역으로 인해 포인터 처리에 어려움을 겪는 문제를 해결합니다.

- 제안된 포인터 지식 그래프는 코드 종속성 그래프에 포인터의 전역적인 사용 정보와 Rust 소유권, 가변성, null 가능성, 생명주기 등의 정보를 통합하여 번역의 안전성과 정확성을 크게 향상시킵니다.

- 실험 결과, PtrTrans는 기존 방식 대비 안전하지 않은 사용을 99.9% 감소시키고 기능적 정확성을 29.3% 향상시키는 성과를 보였습니다.

- (한계점 또는 향후 과제) 실제 대규모 프로젝트에 대한 적용성 검증 및 복잡한 라이브러리 인터페이스에 대한 번역 정확도 향상이 필요할 수 있습니다.

[PDF 보기](https://arxiv.org/pdf/2510.10956)