[논문리뷰] EVOC2RUST: A Skeleton-guided Framework for Project-Level C-to-Rust Translation
링크: 논문 PDF로 바로 열기
저자: Chaofan Wang, Tingrui Yu, Jie Wang, Dong Chen, Wenrui Zhang, Yuling Shi, Xiaodong Gu, Beijun Shen
핵심 연구 목표
레거시 C 코드베이스를 Rust로 자동 변환할 때 발생하는 언어적 불일치(안전성, 관용성) 및 프로젝트 레벨의 모듈 간 종속성 문제를 해결하여, 전체 C 프로젝트를 의미론적으로 동등하고 안전한 Rust 코드로 정확하게 번역하는 프레임워크를 개발하는 것을 목표로 합니다.
핵심 방법론
EvoC2RUST는 세 단계의 진화적 증강 전략을 사용합니다. 첫째, C 프로젝트를 기능 모듈로 분해하고, 정의 및 매크로를 변환하며, 타입 검사된 함수 스텁을 생성하여 컴파일 가능한 Rust 스켈레톤을 구축합니다. 둘째, 특징 매핑이 강화된 LLM을 사용하여 각 함수 본문을 스켈레톤의 플레이스홀더에 점진적으로 번역합니다. 셋째, LLM 기반 정제와 정적 분석을 통합한 단계적 오류 복구 체인(Bracket Repair, Rule-Based Repair, LLM Refinement)을 통해 컴파일 오류를 수정하고 출력을 개선합니다.
주요 결과
LLM 기반 접근 방식 대비 구문 및 의미 정확도에서 평균 17.24% 및 14.32% 향상을 달성했으며, 규칙 기반 도구보다 96.79% 높은 코드 안전율을 보였습니다. 모듈 수준에서는 산업 프로젝트에서 92.25%의 컴파일 성공률과 89.53%의 테스트 통과율을 달성했습니다. 특히, 안전 보존 특징 매핑 메커니즘이 가장 중요한 기여를 하는 것으로 확인되었습니다.
AI 실무자를 위한 시사점
EvoC2RUST는 LLM의 코드 이해 능력과 규칙 기반 접근 방식의 정확성을 결합하여 대규모 C 코드베이스를 Rust로 안전하게 마이그레이션하는 실용적인 솔루션을 제공합니다. 이는 특히 메모리 안전성이 중요한 시스템 개발에서 레거시 시스템을 현대화하려는 AI/ML 엔지니어들에게 유용하며, 복잡한 프로젝트 종속성을 관리하는 데 효과적인 전략을 제시합니다.
⚠️ 알림: 이 리뷰는 AI로 작성되었습니다.
Comments