배너
닫기

테크노트

배너

KAIST, 美 국방부가 주목한 C-러스트 번역 기술 개발

URL복사

 

한국과학기술원(KAIST)은 안전성 논란이 제기된 C언어를 러스트로 변환할 수 있는 코드 번역 기술을 개발했다고 13일 밝혔다.

 

컴퓨터 프로그래밍 언어인 C언어는 실행 속도가 빠르고 유지 보수가 쉬워 널리 쓰이고 있지만 메모리 할당과 관리에 치명적인 문제점을 갖고 있다. 이 때문에 지난 2월 미국 백악관은 C언어의 사용 중단을 촉구했고, 미국 국방고등연구계획국(DARPA)도 C언어로 작성된 코드를 러스트로 자동 번역하는 기술을 개발하는 연구 과제를 발표했다.

 

DARPA는 C의 메모리 문제를 막기 위해 러스트와 같이 안전한 언어를 사용해야 한다고 강조했다. 2015년부터 개발된 러스트는 운영 체제, 웹 브라우저 개발 등에 쓰이는 프로그래밍 언어로, C와 달리 프로그램 실행 전에 메모리 문제를 탐지하고 예방할 수 있다.

 

C언어를 러스트로 번역하기 위한 연구가 시도되고 있지만, 큰 간극으로 인해 번역에 성공한 팀은 극소수다. 그마저도 '포인터'(pointer·데이터 저장 위치를 표현하는 기능)를 변환하는 수준에 머물고 있다.

 

전산학부 류석영 교수 연구팀은 C언어의 '유니언'(union·여러 종류의 데이터를 같은 공간에 보관해 메모리 효율을 높이는 C언어의 핵심 기능)을 러스트의 '태그드 유니언'(tagged union·같은 공간에 보관하는 데이터에 태그를 붙여 구분하는 기능)으로 변환하는 기술을 최초로 개발했다.

 

태그드 유니언 기능은 기존 C언어의 유니언 기능과 달리 데이터를 종류별로 구분할 수 있어 메모리 문제를 일으키지 않는다. 연구팀은 C언어의 유니언에 특화된 새로운 프로그램 분석 기법을 고안, 러스트의 태그드 유니언으로 자동 번역하는 데 성공했다.

 

류석영 교수는 "안전한 소프트웨어 제작을 목표로 C-러스트 코드 번역의 중요성을 일찍이 파악하고 각종 프로그래밍 언어 기법들을 코드 번역에 적극적으로 도입해 나온 결과"라며 "완전한 자동 번역을 위해 풀어야 할 난제가 많은 만큼 후속 연구를 이어갈 계획"이라고 말했다.

 

헬로티 이창현 기자 |



















주요파트너/추천기업