AdaTrans: 오류 적응형 수정을 통한 자동화된 C에서 Rust로의 변환
요약
C 코드를 Rust로 자동 변환할 때 발생하는 소유권 및 빌림 규칙 위반 문제를 해결하기 위한 AdaTrans 프레임워크를 제안합니다. RAG 기반의 오류 매핑과 다단계 검증 파이프라인을 통해 높은 컴파일 성공률과 기능적 동등성을 확보했습니다.
핵심 포인트
- RAG를 활용해 컴파일러 오류를 특정 수정 사항으로 매핑
- 오류 계층화 변환 전략(ESTS)으로 오류 유형별 맞춤 대응
- 평균 컴파일 통과율 95.51% 및 문제 해결률 81.09% 달성
- unsafe 구문 사용 비율을 1.19%로 최소화
C 코드를 Rust로 자동 변환하는 것은 Rust의 엄격한 소유권 (ownership) 및 빌림 (borrowing) 의미론 (semantics)으로 인해 매우 어렵습니다. 대규모 언어 모델 (LLMs)이 가능성을 보여주고 있지만, 이들은 종종 이러한 규칙을 위반하거나 unsafe 구문에 의존하는 코드를 생성합니다. 우리는 세 가지 핵심 메커니즘을 통해 이러한 문제를 해결하는 프레임워크인 AdaTrans를 제안합니다: 컴파일러 오류를 특정 수정 사항으로 매핑하는 전략 주도형 검색 증강 생성 (RAG) 메커니즘, 오류 유형에 따라 동작을 조정하는 오류 계층화 변환 전략 (ESTS), 그리고 컴파일 가능성과 기능적 동등성을 모두 보장하기 위한 다단계 검증 파이프라인입니다. 104개의 알고리즘 문제 데이터셋을 통해 평가한 결과, AdaTrans는 평균 컴파일 통과율 95.51%와 평균 문제 해결률 81.09%를 달성하였으며, unsafe 파일 비율을 단 1.19%로 유지하면서 기존 도구들을 크게 능가하는 성능을 보여주었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기