서울대 공대는 23일 컴퓨터공학부 허충길 교수팀(소프트웨어원리 연구실)이 LLVM 컴파일러의 문제점을 발견하고 이를 해결하기 위해 제안한 프리즈(freeze) 명령어가 지난해 11월 LLVM에 공식적으로 추가됐다고 밝혔다.
|
연구진은 LLVM 컴파일러 중간 언어에 존재하는 ‘정의되지 않은 행동(undefined behavior)’이란 개념이 가진 문제점 및 이로 인해 발생할 수 있는 컴파일러 오류들을 발견했다.
이에 해결 방법으로 freeze라는 새로운 명령어를 제안하고 성능저하 없이 문제를 해결할 수 있음을 실험을 통해 입증했다.
이 연구는 학계에서 먼저 인정받아 2017년에 프로그래밍 언어 분야 최고 학회 중 하나인 PLDI(Programming Language Design and Implementation)에 발표됐다.
이후 산업계에서도 이 문제에 대한 심각성을 인지하고 활발한 토의가 이루어져 2년 만인 지난 11월에 공식적으로 freeze 명령어가 LLVM에 추가되기에 이르렀다.
허충길 서울대 교수는 “이번 연구는 해외에서 더욱 주목하고 있다“며 ”논문발표 이후 이 문제로 인해 LLVM 컴파일러가 구글의 소프트웨어를 잘못 컴파일하는 문제가 발생하며 이번 연구가 더욱 주목받는 계기가 됐다“고 설명했다.
이번 연구는 허 교수의 주도 하에 구글, 마이크로소프트, 아줄 시스템, 미국 유타 대학과 공동 연구한 결과다.