美 국방부 주목 'C-러스트' KAIST가 선도…관련 번역기술 최초 개발

연구팀이 제시한 번역기법 전체 과정 도식
연구팀이 제시한 번역기법 전체 과정 도식

한국과학기술원(KAIST·총장 이광형)이 미국 국방부 등이 주목하는 'C-러스트' 코드 번역 기술을 선제적으로 개발, 해당 분야를 선도하고 있다.

KAIST는 류석영 전산학부 교수팀(프로그래밍 언어 연구실)이 C언어 유니언(여러 종류 데이터를 한 공간에 보관, 메모리 효율을 높이는 C언어 핵심 기능)을 러스트 태그드의 유니언(태그를 붙여 데이터를 구분, 메모리 문제를 일으키지 않는 유니언)으로 변환하는 기술을 세계 최초로 개발했다고 13일 밝혔다.

소프트웨어(SW) 작성에 필요한 프로그래밍 언어 중 C언어는 메모리 할당과 관리에 치명적인 문제점이 있다. 이를 해결하고자 개발된 프로그래밍 언어가 러스트다.

미국 백악관, 국방부 등에서도 메모리 문제를 막기 위해 러스트와 같이 안전한 언어 사용을 촉구하고 있다. 미국 국방고등연구계획국(DARPA)도 C언어로 작성된 코드를 러스트로 자동 번역하는 기술을 개발하는 연구 과제를 발표한 바 있다.

이런 상황에서 연구팀은 C언어 유니언에 특화된 새로운 프로그램 분석 기법을 고안, 러스트의 태그드 유니언 자동 번역에 성공했다.

류석영 KAIST 전산학부 교수(왼쪽)와 홍재민 석박사통합과정
류석영 KAIST 전산학부 교수(왼쪽)와 홍재민 석박사통합과정

C언어와 러스트는 간극이 커 세계적으로도 C-러스트 코드 번역 기술을 성공적으로 개발한 연구팀은 극소수다. 그마저도 포인터(데이터 저장 위치 표현 기능)를 변환하는 데 머물고 있다.

반면에 류석영 교수팀은 C의 여러 핵심 기능을 변환하는 기법을 연달아 제시, C-러스트 코드 번역 기술을 선도하고 있다.

지난해 5월과 지난 6월에는 각각 C의 뮤텍스(프로그램 동기화에 필요한 기능)와 출력 파라미터(계산 결과 전달에 사용되는 기능)를 러스트로 변환하는 기술을 세계 최초로 개발, 국제소프트웨어엔지니어링학회(ICSE)와 프로그래밍언어설계구현학회(PLDI)에 발표한 바 있다.

류석영 교수는 “안전한 SW 제작을 목표로 연구하면서 C-러스트 코드 번역의 중요성을 일찍이 파악하고 각종 프로그래밍 언어 기법들을 코드 번역에 적극적으로 도입해 나온 결과”라며 “완전한 자동 번역을 위해 아직 풀어야 할 난제가 많아 후속 연구에 정진해 계속 분야를 선도하겠다”고 말했다.

홍재민 KAIST 전산학부 석박사통합과정 학생이 제1 저자로 참여한 이번 연구 결과는 국제자동소프트웨어엔지니어링학회(ASE)에 채택됐다.

이번 연구는 한국연구재단 선도연구센터 및 중견연구자지원사업, 정보통신기획평가원(IITP), 삼성전자 지원을 받아 수행됐다.

김영준 기자 kyj85@etnews.com