메뉴바로가기본문바로가기

동아사이언스

국내 연구팀, 인기 컴파일러 오류 잡는 명령어 개발

통합검색

국내 연구팀, 인기 컴파일러 오류 잡는 명령어 개발

2020.01.23 13:40
허충길 서울대 컴퓨터공학부 교수(왼쪽)와 이준영 박사과정생은 세계에서 가장 많이 쓰이는 컴파일러 중 하나인 LLVM(오른쪽) 오류를 해결하는 명령어를 개발해 공식 추가했다. 서울대 공대 제공
허충길 서울대 컴퓨터공학부 교수(왼쪽)와 이준영 박사과정생은 세계에서 가장 많이 쓰이는 컴파일러 중 하나인 LLVM(오른쪽) 오류를 해결하는 명령어를 개발해 공식 추가했다. 서울대 공대 제공

한국 연구팀이 세계에서 가장 많이 쓰이는 컴파일러 중 하나인 LLVM 오류를 해결하는 명령어를 개발해 공식 추가했다.

 

허충길 서울대 컴퓨터공학부 교수 연구팀은 LLVM 컴파일러의 문제점을 발견하고 이를 해결하기 위해 제안한 ‘프리즈(freeze)’ 명령어가 지난해 11월 LLVM에 공식적으로 추가됐다고 23일 밝혔다. 컴파일러는 소프트웨어 프로그래머가 작성한 코드를 기계어로 변환해 실행시키는 프로그램이다.

 

LLVM은 애플과 구글, 페이스북 등 여러 정보기술(IT)회사 및 오픈소스 프로젝트에서 쓰이고 있다. C와 C++의 컴파일러 ‘클랭’, 애플의 ‘스위프트’, 구글의 ‘텐서플로우’, 모질라의 ‘러스트’ 등이 이에 해당한다.

 

연구팀은 LLVM 컴파일러 중간 언어에 존재하는 ‘정의되지 않은 행동’ 이란 개념이 가진 문제점과 이로 인해 발생하는 컴파일러 오류들을 발견했다. 정의되지 않은 행동은 인식할 수 없거나 오류가 난 데이터를 다루는 방법을 표준으로 정의하지 않아 컴파일러가 임의로 이를 처리하는 것을 뜻한다.

 

연구팀은 해결 방법으로 ‘freeze’라는 새로운 명령어를 제안했다. freeze는 정의되지 않은 정보가 퍼지는 것을 막는 명령어로 연구팀은 이 명령어를 쓰면 성능 저하 없이 문제를 해결할 수 있음을 실험으로 입증했다.

 

관련 연구는 2017년 프로그래밍 언어 분야 학회 ‘프로그래밍 언어 설계 및 실행(PLDI)’에 발표됐다. 이후 산업계에서 관련 문제를 인지하고 토의를 거친 끝에 지난해 11월 공식적으로 freeze 명령어가 추가됐다.

 

허 교수는 “이번 연구는 해외에서 더욱 주목하고 있다”며 “논문을 발표한 후 이 문제로 LLVM 컴파일러가 구글의 소프트웨어를 잘못 컴파일하는 일이 발생하며 연구가 더욱 주목받는 계기가 됐다”고 말했다.

이 기사가 괜찮으셨나요? 메일로 더 많은 기사를 받아보세요!

댓글 0

3 + 4 = 새로고침
###
    과학기술과 관련된 분야에서 소개할 만한 재미있는 이야기, 고발 소재 등이 있으면 주저하지 마시고, 알려주세요. 제보하기