Daily Arxiv

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

LLM-Driven Multi-step Translation from C to Rust using Static Analysis

Created by
  • Haebom
Category
Empty

저자

Tianyang Zhou, Haowen Lin, Somesh Jha, Mihai Christodorescu, Kirill Levchenko, Varun Chandrasekaran

개요

본 논문은 레거시 언어(예: C)로 작성된 소프트웨어를 현대 언어(예: Rust)로 변환하는 과정에서 발생하는 어려움을 해결하기 위해, LLM 기반의 C-to-Rust 제로샷 번역 도구인 SACTOR를 제안합니다. SACTOR는 의미를 보존하는 'unidiomatic' 단계와 Rust의 의미론적 표준을 따르도록 코드를 개선하는 'idiomatic' 단계의 두 단계 번역 방법론을 사용합니다. 소스 C 프로그램의 정적 분석 정보를 활용하여 포인터 의미론 및 종속성 해결과 같은 문제를 해결하고, 외래 함수 인터페이스를 통한 종단 간 테스트로 각 단계의 번역 결과 정확성을 검증합니다. GPT-4o, Claude 3.5 Sonnet, Gemini 2.0 Flash, Llama 3.3 70B, DeepSeek-R1 등 다양한 LLM을 사용하여 200개 프로그램을 번역하고 평가한 결과, 높은 정확성과 향상된 관용성을 달성함을 보여줍니다. 특히 DeepSeek-R1은 93%의 정확도를 달성하였고, GPT-4o, Claude 3.5, DeepSeek-R1은 각 데이터셋에서 84%의 정확도를 달성했습니다.

시사점, 한계점

시사점:
LLM을 활용하여 레거시 코드를 현대 언어로 효율적이고 정확하게 변환하는 새로운 방법 제시.
SACTOR의 두 단계 번역 방법론과 정적 분석 활용을 통한 정확성 및 관용성 향상.
다양한 LLM의 성능 비교를 통한 최적 모델 선택 기준 제시.
기존 방법 대비 더욱 자연스럽고 Rust 규칙을 준수하는 코드 생성.
한계점:
평가에 사용된 프로그램 수(200개)가 상대적으로 적을 수 있음.
다양한 종류의 C 코드에 대한 일반화 가능성에 대한 추가 연구 필요.
특정 LLM에 대한 의존성으로 인한 모델 선택의 제약.
극도로 복잡하거나 특수한 C 코드에 대한 처리 성능 및 정확도 저하 가능성.
👍