전세계 컴퓨팅기반 핵심을 더욱 튼튼히: LLVM 오류해결책 공식 채택
허충길 교수가 이끄는 소프트웨어원리 연구실의 연구 결과가 세계에서 가장 많이 쓰이는 컴파일러 중 하나인 LLVM에 최근 적용되었다.
LLVM은 현재 Apple, Google, Facebook 등 세계 유수 회사 및 여러 오픈소스 프로젝트에서 사용되고 있으며, 대표적인 프로젝트로는 C/C++ 컴파일러 Clang, Apple의 Swift 언어, Google의 Tensorflow 프로젝트, 그리고 프로그래밍 언어 Rust가 있다.
허충길 교수 연구진은 LLVM 컴파일러 중간언어에 존재하는 정의되지 않은 행동(undefined behavior)이란 개념이 가진 문제점 및 이로 인해 발생할 수 있는 컴파일러 오류들을 발견하였다. 또한 이를 해결하는 방법으로 freeze라는 새로운 명령어를 제안하고 성능저하없이 문제를 해결할 수 있음을 실험을 통해 보였다.
이 연구는 학계에서 먼저 인정받아 2017년에 프로그래밍 언어 분야 최고 학회 중 하나인 PLDI (Programming Language Design and Implementation)에 발표되었다.
이후 산업계에서도 이 문제에 대한 심각성을 인지하고 활발한 토의가 이루어져 2년만인 지난 11월에 공식적으로 freeze 명령어가 LLVM에 추가되었다. 특히, 논문발표 이후 이 문제로 인해 LLVM 컴파일러가 자기 자신을 잘못 컴파일하고, 이렇게 잘못 컴파일 된 LLVM 컴파일러가 다시 Google의 소프트웨어를 잘못 컴파일하는 문제가 실제로 발생해 우리 연구가 더욱 주목받는 계기가 되었다.
이 연구는 허충길 교수 주도 하에 이준영 학생이 1저자로 Google, Microsoft, Azul System, Utah 대학과 공동 연구한 결과이다. 더 자세한 내용은 아래의 링크를 통해 확인할 수 있다.