실시간
뉴스

e비즈*솔루션

KAIST, 미국 국방부도 주목한 ‘C-러스트’ 개발…세계 최초

왼쪽부터 류석영 전산학부 교수, 홍재민 전산학부 석박사통합과정 [ⓒKIST]
왼쪽부터 류석영 전산학부 교수, 홍재민 전산학부 석박사통합과정 [ⓒKIST]

[디지털데일리 오병훈기자] 한국과학기술원에서 C언어 단점을 보완하는 프로그래밍 언어 번역 기술을 세계 최초로 선보였다.

한국과학기술원(KIST)은 류석영 전산학부 교수 연구팀(프로그래밍 언어 연구실)이 C언어 유니언(union)을 러스트(Rust)의 태그드 유니언(tagged union)으로 변환하는 기술을 개발했다고 13일 밝혔다.

유니언은 여러 종류의 데이터를 같은 공간에 보관해 메모리 효율을 높이는 C언어의 핵심 기능이다. 그러나 보관된 데이터가 어떤 종류인지 구분하지 않아 메모리 문제를 일으킬 수 있다는 단점이 있다. 태그드 유니언은 같은 공간에 보관할 수 있는 여러 종류 데이터 중 어떤 종류 데이터를 보관하는지 태그를 붙여서 구분해, 메모리 문제를 일으키지 않는 장점이 있다.

C언어는 실행속도도 빠르고 유지보수도 쉬운 소프트웨어 작성 언어다. 다만, 메모리 할당 및 관리 등에 치명적인 문제점을 가지고 있다. 이 문제를 해결하기 위해 개발된 프로그래밍 언어가 ‘러스트’다. 미국 백악관이나 국방성에서 메모리 문제를 막기 위해 러스트같이 안전한 언어를 사용하기 위한 연구가 진행 중인 상황이다.

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

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

러스트는 지난 2015년부터 개발된 프로그래밍 언어로, 운영 체제, 웹 브라우저 개발 등에 쓰이며, 지난 2022년에는 리눅스(Linux) 개발에도 공식 사용되기 시작했다. C와 달리 프로그램 실행 전에 메모리 문제를 탐지하고 예방할 수 있는 것이 특징이다.

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

그에 비해 류석영 교수 연구팀은 C 여러 핵심 기능을 변환하는 기법을 연달아 제시해 C-러스트 코드 번역 기술 핵심이 되는 부분을 개발했다.

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

한편, 홍재민 전산학부 석박사통합과정 학생이 제1 저자로 참여한 이번 연구 결과는 최우수 국제 학술대회인 국제자동소프트웨어엔지니어링학회(ASE)에 채택됐다. 이번 연구는 한국연구재단 선도연구센터 및 중견연구자지원사업, 정보통신기획평가원(IITP), 삼성전자의 지원을 받아 수행됐다.

디지털데일리 네이버 메인추가
x