# ENCRUST: Encapsulated Substitution and Agentic Refinement on a Live Scaffold for Safe C-to-Rust Translation

### 저자

Hohyun Sim, Hyeonjoong Cho, Ali Shokri, Zhoulai Fu, Binoy Ravindran

### 💡 개요

본 논문은 실제 C 프로젝트를 안전한 Rust 코드로 변환하는 두 단계 파이프라인인 ENCRUST를 제안한다. 기존 방식의 한계점을 극복하기 위해, ENCRUST는 ABI 보존 래퍼 패턴을 활용하여 경계 적응과 함수 로직을 분리하고, 각 중간 상태를 통합 코드베이스에 대해 검증한다. 이를 통해 함수 단위의 독립적인 타입 변경과 전역 코드베이스 기반의 에이전트 기반 개선을 통해 안전한 Rust 변환을 달성한다.

### 🔑 시사점 및 한계

- **ABI 보존 래퍼를 통한 독립적 함수 변환:** 함수별로 ABI 호환 래퍼를 사용하여 원본 함수 시그니처를 유지하면서 내부 함수를 LLM으로 안전하게 변환할 수 있게 하여, 호출자 업데이트 없이도 독립적인 타입 변경 및 실패 시 자동 롤백이 가능하다.

- **에이전트 기반 전역 코드베이스 개선:** 함수 범위 밖의 전역 변수, 스킵된 래퍼 쌍 등 복잡한 안전하지 않은 구문을 LLM 에이전트가 전역 코드베이스를 대상으로 해결하여 변환의 완성도를 높인다.

- **실제 프로젝트에서의 효과성 입증:** GNU Coreutils 및 Laertes 벤치마크의 15개 프로그램에 대한 평가 결과, 상당한 안전하지 않은 구문 감소와 더불어 테스트 벡터 정확도를 유지함을 보여주었다.

- **복잡한 종속성 및 비전통적 C 패턴의 처리:** 아직 논문에서 상세히 다루지 않은 극도로 복잡한 C 프로젝트의 종속성이나 일반적이지 않은 C 패턴에 대한 처리 능력은 추가적인 연구가 필요할 수 있다.

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

For the site tree, see the [root Markdown](https://slashpage.com/haebom.md).
