한국과학기술원은(KAIST)은 류석영 전산학부 교수 연구팀이 C언어의 유니언(union)을 러스트의 태그드 유니언(tagged union)으로 자동 변환하는 기술을 세계 최초로 개발했다고 13일 밝혔다.
프로그래밍 언어 중 하나인 C언어는 소프트웨어 실행 속도가 빠르고 유지보수가 쉽지만 메모리 할당·관리 등에 치명적인 문제점이 있다. 이런 문제들을 해결하고자 개발된 프로그래밍 언어가 러스트다. C와 달리 프로그램 실행 전에 메모리 문제를 탐지하고 예방한다. 이 때문에 미국 백악관이나 국방성은 러스트같이 안전한 언어 사용을 촉구하고 있다. 미국 국방고등연구계획국(DARPA)은 C언어로 작성된 코드를 러스트로 자동 번역하는 기술을 개발하는 연구 과제를 발표하기도 했다.
류 교수가 이끄는 프로그래밍언어연구실 연구팀은 C언어의 유니언에 특화된 새로운 프로그램 분석 기법을 고안해 러스트의 태그드 유니언으로 자동 번역하는 데 성공했다.
유니언은 여러 종류의 데이터를 같은 공간에 보관해 메모리 효율을 높이는 C언어 핵심 기능이다. 다만 보관된 데이터가 어떤 종류인지 구분하지 않아 메모리 문제를 일으킬 수 있다. 반면 태그드 유니언은 각각의 데이터에 구분이 가능한 태그를 붙여 유사한 문제를 일으키지 않는다.
이번 연구는 한국연구재단 선도연구센터와 중견연구자지원사업, 정보통신기획평가원(IITP), 삼성전자 지원을 받아 이뤄졌다. 홍재민 KAIST 전산학부 석박사통합과정 학생이 제1저자로 참여한 이번 연구 성과는 국제자동소프트웨어엔지니어링학회(ASE) 학술지에 실렸다.
앞서 연구팀은 지난해 5월과 올해 6월에 각각 C의 뮤텍스(프로그램 동기화에 필요한 기능)와 출력 파라미터(계산 결과 전달에 사용되는 기능)를 러스트로 변환하는 기술을 세계 최초로 개발해 국제소프트웨어엔지니어링학회(ICSE)와 프로그래밍언어설계구현학회(PLDI)에 발표하기도 했다.
류 교수는 "안전한 소프트웨어 제작을 목표로 연구하면서 C-러스트 코드 번역 중요성을 일찍이 파악하고, 각종 프로그래밍 언어 기법을 코드 번역에 적극적으로 도입해 나온 성과"라고 설명했다. 이어 "완전한 자동 번역을 위해 아직 풀어야 할 난제가 많다"며 "후속 연구에 정진해 이 분야를 선도하겠다"고 말했다.
©'5개국어 글로벌 경제신문' 아주경제. 무단전재·재배포 금지