- Title: The New Compiler Stack A Survey on the Synergy of LLMs and Compilers
- ArXiv ID: 2601.02045
- 발행일: 2026-01-05
- 저자: Shuoming Zhang, Jiacheng Zhao, Qiuchu Yu, Chunwei Xia, Zheng Wang, Xiaobing Feng, Huimin Cui
📝 초록
컴파일러는 수십 년 동안 프로그래밍 코드를 인간이 이해할 수 있는 형태에서 기계가 실행 가능한 형태로 변환하는 핵심적인 역할을 해왔다. 최근에는 대형 언어 모델(LLMs)이 컴파일러의 역할에 새로운 변화를 가져오고 있다. 이 연구는 LLMs를 이용한 컴파일러 관련 작업을 체계적으로 검토하고 분류하며, 이를 통해 현재 연구 동향과 미래 방향성을 제시한다.
💡 논문 해설
이 논문의 주요 기여는 세 가지다:
체계적인 리뷰: 159개의 최신 연구를 체계적으로 검토하고 분류하여 LLM을 이용한 컴파일러 작업의 현 상태를 파악한다.
다차원 분류법 제안: 이 논문은 LLM의 설계 철학, 방법론, 코드 추상화 수준, 그리고 수행하는 특정 태스크 유형에 따라 연구를 분류하는 새로운 다차원 분류법을 제시한다.
전반적인 분석 및 미래 방향성: 현재 연구가 직면한 주요 도전 과제와 해결 방안을 논의하며, 향후 연구 방향성을 제시한다.
이를 쉽게 이해하는 방법은 다음과 같다:
첫 번째 기여는 한마디로 말하면, “컴파일러 레스토랑에서 새로운 메뉴판을 만드는 것"과 비슷하다. 다양한 음식을 찾아서 잘 정리된 메뉴판으로 만들어주는 것이다.
두 번째 기여는 “레시피 분류법"이다. 요리를 만들 때 어떤 재료를 어떻게 조합해야 하는지, 그 과정을 체계적으로 설명하는 방법을 제안한다.
세 번째 기여는 현재의 레스토랑 운영에 대한 문제점과 개선 방향을 모색하는 것이다.
📄 논문 발췌 (ArXiv Source)
# 소개
수십 년 동안 컴파일러는 컴퓨팅 스택의 핵심 요소로, 인간이 이해할 수 있는 소스 코드를 효율적인 기계 실행 가능 프로그램으로 번역하는 중요한 역할을 해왔다. 이 과정에서 최대한 효율적으로 코드를 변환하려는 것은 주요 도전 과제 중 하나이다. 이러한 분야는 전통적으로 인간 전문가들이 디자인한 복잡하고 정교한 휴리스틱 알고리즘에 의해 관리되어 왔다.
기계 학습의 등장은 이 패러다임을 새로운 방향으로 변화시켰으며, 데이터 기반 모델을 사용하여 단계 순서 결정 및 플래그 선택과 같은 작업을 수행하였다. 그러나 이러한 전통적인 기계 학습 접근법은 특징 공학 과정에 의존하며, 전문가들이 소프트웨어의 특징을 세밀하게 설계하고 추출하여 모델을 훈련시키는 데 필요한 시간과 노력을 필요로 한다.
최근 대형 언어 모델(LLMs)은 이 분야에서 근본적인 변화를 가져왔다. 광범위한 텍스트와 코드 코퍼스에 사전 학습된 LLMs는 프로그래밍 언어를 원문 텍스트로 이해하고 생성하며 변환하는 데 있어 놀라운 능력을 보여주며, 명시적인 특징 공학의 필요성을 크게 줄였다. 코드베이스에서 수십 배 더 많은 데이터를 학습함으로써 LLMs는 다양한 언어에서 프로그래밍 패턴, 구문, 의미에 대한 깊은 이해를 내재화한다.
이러한 능력들은 소프트웨어 개발 워크플로우에 통합되어 있으며, LLM 기반 챗봇, 코드 어시스턴트, 반자동 에이전트 등을 통해 개발자의 효율성을 증대시킨다. 이 혁신의 파도는 다시 컴파일러 도메인 내에서 새로운 연구를 촉진했다. 태스크의 범위는 단순한 패스 선택 문제에서, 코드 변환 및 자동 프로그램 수정과 같은 종단 간 목표로 확장되었다.
이러한 빠른 변화는 컴파일러 관련 작업에 걸친 새로운 연구의 급증을 이끌었다. 연구자들은 LLMs를 이용하여 다양한 목표, 예를 들어 소스-소스 코드 변환 및 고수준 코드 최적화와 같은 과제를 수행하고 있다. 이러한 공부들의 엄청난 양과 다양성은 현재의 연구 지형을 이해하는 데 어려움을 초래할 수 있다. 이 간극을 해결하기 위해, 본 논문은 LLM-기반 컴파일러 연구에서 최근 발전에 대한 체계적인 검토를 제공한다.
본 논문의 주요 기여는 다음과 같다:
체계적인 문헌 검토를 수행하여 159개의 최신 연구를 식별하고 수집한 코퍼스를 제공한다.
LLM의 설계 철학, 방법론, 코드 추상화 수준, 태스크 유형에 따라 기존 작업을 분류하는 새로운 다차원 분류법을 제안한다.
LLM 기반 접근 방식이 컴파일러 개발을 민주화하고 새로운 최적화를 발견하며 컴파일의 범위를 확장하는 데 어떻게 기여했는지 포괄적인 분석을 제공한다.
공통 도전 과제를 종합하여, 하이브리드 시스템 및 자기 개선형 컴파일러 개발과 같은 향후 연구 방향성을 논의한다.
본 논문은 다음과 같이 구성되어 있다. 2는 우리가 대답하려고 하는 연구 질문 및 체계적인 문헌 선택 방법론을 상세히 설명한다.
3
와 4는 우리의 다차원 분류법을 상세히 제시하며, 기존 작업을 범주화한다.
5은 이 분야의 대표적인 데이터셋과 벤치마크를 체계적으로 제공하고, 관련 최신 연구 결과를 소개한다. 6는 분야의 발전, 도전 과제 및 미래 기회에 대한 심층적인 논의를 제공한다.
마지막으로, 7은 논문을 마무리짓는다.
방법론
이 섹션에서는 LLM-기반 컴파일러 연구의 전반적인 지형을 조사하기 위해 사용한 체계적인 방법론을 상세히 설명한다. 철저하고 투명한 프로토콜은 우리의 검토가 포괄적이고 재현 가능하도록 하는데 필수적이다. 이에 따라 먼저, 2.1에서 우리 조사의 지침이 된 연구 질문을 제시한다.
그 후, 기술적으로 구조화된 세 단계 문헌 검색 및 선택 프로토콜을 설명하여 최종 코퍼스를 구성한다.
이 섹션에서는 체계적인 문헌 검토의 자세한 절차를 소개한다. 철저하고 편향 없는 검토를 위해, 우리는 표준 관행에 따라 체계적 문헌 검토(SLR) 프로토콜을 채택했다. 이 프로토콜은 우리의 조사 안내 역할을 하는 연구 질문을 정의하고, 관련 논문을 식별하는 검색 과정 및 논문을 포함하거나 배제하기 위한 기준을 명시한다.
연구 질문 (RQs)
본 문헌 검토와 분석 구조를 제공하기 위해 다음과 같은 네 가지 핵심 연구 질문을 제안한다:
RQ1: LLM은 컴파일 과정에 어떻게 통합되고 있는가? 이 질문은 두 가지 보완적인 관점을 통해 탐구한다. 첫째, LLM의 역할을 정의하는 설계 철학; 둘째, 모델이 기술적으로 개발 및 적용되는 방법론.
RQ2: LLM에 의해 주로 다루어지는 컴파일러 관련 작업은 무엇인가? 이 질문은 코드 최적화, 변환, 코드 생성 등의 특정 컴파일러 관련 작업을 식별하고 분류한다.
RQ3: LLM 기반 접근 방식이 제공하는 주요 발전점은 무엇인가? 이 질문은 이러한 기법들이 컴파일러 및 머신 러닝 커뮤니티에 가져오는 새로운 기여와 혁신을 요약한다.
RQ4: 이 신생 분야에서 공통적으로 직면하는 도전 과제와 미래의 기회는 무엇인가? 이 질문은 문헌에서 보고된 주요 장애물을 종합하고 향후 연구 방향성을 식별한다.
문헌 검색 및 선택 프로토콜
style="width:80.0%" />
문헌 검색 및 선택 프로토콜 개요
위에서 정의한 연구 질문을 체계적으로 답변하기 위해, 우리는 포괄적인 문헌 검색 및 선택 프로토콜을 설계하고 실행했다. 이 과정은 세 가지 단계로 구성되어 있으며, 초기 후보군을 최종적으로 관련성 있는 코퍼스 159개의 논문으로 필터링한다.
Phase 1: Initial Search and Candidate Collection. 첫 번째 단계에서는 arXiv, Google Scholar, ACM Digital Library, IEEE Xplore 등 네 가지 주요 디지털 도서관에서 후보 논문을 검색하기 위해 광범위한 검색 쿼리를 사용한다. “LLM compiler”, “large language model for code optimization”, “AI in compilers”, “transformer for compilation”, “LLM for code generation"와 같은 키워드를 포함한 검색어 집합을 활용한다. 자동화된 검색 외에도, 도메인 전문가가 식별한 몇몇 주요 논문들을 수동으로 추가했다. 이를 위해 우리는 핵심 논문들의 앞선 인용 사슬을 검토하는 눈송이 기법(snowballing technique)을 사용하여 포괄적인 커버리지를 확보하고 관련 연구를 포함시켰다.
Phase 2: Deduplication and Initial Screening. 두 번째 단계에서는 초기 논문 풀에서 중복 항목을 제거한다. 그 후, 남은 기사에 대한 예비 검사를 수행한다. 이 단계는 제목과 초록을 검토하여 우리의 조사 범위 밖인 연구를 필터링한다.
Phase 3: Full-Text Review and Final Selection. 세 번째 단계에서는 초기 검사를 통과한 각 논문에 대한 전체 텍스트 검토를 수행한다. 이 깊이 있는 분석을 통해 엄격한 포함 및 배제 기준에 따라 연구의 최종 적합성을 결정할 수 있다.
Inclusion Criteria:
연구는 대형 언어 모델(특히 트랜스포머 기반 모델)을 컴파일 또는 코드 최적화와 관련된 작업에 사용하는 것을 주요 목적으로 해야 한다.
연구는 피어 리뷰된 학술지 논문, 저널 글, 또는 중요한 전문적인 사전 인쇄 원고를 포함해야 한다(예: arXiv에 자주 게시되는 최신 발전을 포함).
연구의 전체 텍스트는 디지털 도서관이나 오픈 액세스 웹사이트를 통해 공개적으로 이용 가능해야 한다.
Exclusion Criteria:
전통적인 머신 러닝(예: SVM, 의사결정 트리)을 사용하는 연구.
기술적 연구 논문이 아닌 편집기사, 특강, 튜토리얼, 포스터 또는 상세 내용이 부족한 확장 초록.
모델의 핵심 적용이 광범위한 컴파일 도메인에 관련되지 않은 연구.
이 엄격한 세 단계 프로세스를 통해 최종적으로 159개의 주요 연구 논문을 선별했다. 이 선별된 코퍼스는 본 논문에서 제시하는 체계적 검토, 분류 및 분석의 기초가 된다.
분류법의 범위
세부적인 분류법을 소개하기 전에, 본 조사의 범위를 정의해야 한다. “LLM-기반 컴파일러"는 광범위한 연구를 포괄한다. 이 리뷰에서는 대형, 사전 학습된 트랜스포머 기반 언어 모델을 사용하여 전통적으로 컴파일 작업 또는 보다 넓은 코드 개발 및 최적화 라이프사이클과 관련된 태스크를 수행하거나 강화하는 모든 연구를 포함한다.
이 정의는 새로운 LLM-기반 접근 방식과 기존 작업 사이에 구분을 그린다. 특히, 본 조사에서 제외되는 것은:
전통적인 ML 기술: 전통적인 머신 러닝 모델(SVM, 의사결정 트리, 랜덤 포레스트)이 소스 코드에서 특징 공학(예: 코드 품질 지표)을 수작업으로 설계하고 추출하는 연구는 이전에 잘 연구되고 검토된 내용이다.
순수한 NLP 기반 SE 작업: 언어 모델을 소프트웨어 엔지니어링 아티팩트에 적용하지만 코드를 직접 분석, 변환 또는 생성하지 않는 연구는 제외한다. 예를 들어 버그 보고서의 분류나 개발자 의견 요약은 관련이 있지만 컴파일러 중심적인 초점을 벗어난다.
이 범위를 정의함으로써, 우리는 대형 언어 모델을 컴파일 과학 및 엔지니어링에 적용하는 특정 혁신적 패러다임에서 최신 연구 동향에 대한 집중적이고 일관된 검토를 제공한다. 컴파일러의 핵심 기능은 번역과 최적화라는 두 가지 프로세스에 근본적으로 뿌리를 두고 있다. 따라서 이 두 영역이 우리의 조사의 주요 포커스다. 우리는 코드 최적화 작업을 포함한다. 여기서 LLMs는 성능 향상이나 코드 크기 감소를 위해 프로그램을 재작성하는 데 사용된다.
동일하게 중요한 것은 코드 변환으로, 이를 넓게 정의하면 다양한 프로그램 표현 간의 번역을 포함한다. 이 범주에는 좁은 의미의 컴파일(예: 프로그래밍 언어에서 어셈블리로), 디컴파일, 소스-소스 변환 및 바이너리 번역 등이 포함된다. 또한 독특한 작업인 프로그래밍 언어를 하드웨어 기술 언어(HDL) 또는 심지어 신경망 가중치로 변환하는 것까지도 포함한다.
이러한 태스크 카테고리는 항상 상호 배타적이지 않다; 실제로, 종종 겹친다. C 코드를 CUDA로 번역하는 작업은 언어 이동을 위한 코드 변환 태스크와 특정 하드웨어에서 병렬 성능을 활용하려는 최적화 태스크라는 두 가지 관점에서 동시에 해석될 수 있다.
이 핵심 기능 외에도, 우리의 조사는 프로그램의 정확성 및 검증과 관련된 작업에 중점을 둔다. 이 포커스는 LLMs의 기본적인 특징에서 직접 동기부여를 받는다: 그들은 강력하지만 완벽하게 신뢰할 수 없는 생성 모델이다. 기존의 결정적 컴파일러와 달리, 코드 수정을 위해 LLM을 직접 사용하는 작업은 출력 결과의 정확성을 보장하기 위한 검증 과정이 필요하다.
따라서 우리는 자동 프로그램 수정 및 버그 수정, 여기서 LLMs가 결함을 수정하는 데 활용되는 것을 포괄적으로 검토한다. 또한, 컴파일러에 관련된 검증 생태계를 강화하는 작업, 예를 들어 컴파일러 퍼징용 효과적인 테스트 케이스 생성 또는 컴파일러 소스 코드 개발 지원과 같은 프로그램 합성 및 코드 생성을 다룬다.
우리 범위 내의 159개 주요 연구는 매우 다양하다. 이 복잡한 지형에 구조를 부여하기 위해, 우리는 LLM이 컴파일 작업 흐름에 어떻게 통합되는지, 모델이 기술적으로 개발 및 적용되는 방법론, 코드가 처리되는 표현 수준(예: 소스 코드, IR), 그리고 수행하려는 특정 컴파일러 관련 목표(예: 최적화, 변환)를 나타내는 네 가지 핵심 축을 따라 연구를 분류하는 다차원 분류법을 제안한다.