KAIST, '안전성 논란' C언어 러스트로 코드 번역 성공

박주영 2024. 8. 13. 10:00
자동요약 기사 제목과 주요 문장을 기반으로 자동요약한 결과입니다.
전체 맥락을 이해하기 위해서는 본문 보기를 권장합니다.

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

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

음성재생 설정
번역beta Translated by kaka i
글자크기 설정 파란원을 좌우로 움직이시면 글자크기가 변경 됩니다.

이 글자크기로 변경됩니다.

(예시) 가장 빠른 뉴스가 있고 다양한 정보, 쌍방향 소통이 숨쉬는 다음뉴스를 만나보세요. 다음뉴스는 국내외 주요이슈와 실시간 속보, 문화생활 및 다양한 분야의 뉴스를 입체적으로 전달하고 있습니다.

C언어 러스트로 코드 번역 기술 개발한 KAIST 연구팀. [KAIST 제공. 재판매 및 DB 금지]

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

컴퓨터 프로그래밍 언어인 C언어는 실행 속도가 빠르고 유지 보수가 쉬워 널리 쓰이고 있지만 메모리 할당과 관리에 치명적인 문제점을 갖고 있다.

이 때문에 지난 2월 미국 백악관은 C언어의 사용 중단을 촉구했고, 미국 국방고등연구계획국(DARPA)도 C언어로 작성된 코드를 러스트로 자동 번역하는 기술을 개발하는 연구 과제를 발표했다.

DARPA는 C의 메모리 문제를 막기 위해 러스트와 같이 안전한 언어를 사용해야 한다고 강조했다.

2015년부터 개발된 러스트는 운영 체제, 웹 브라우저 개발 등에 쓰이는 프로그래밍 언어로, C와 달리 프로그램 실행 전에 메모리 문제를 탐지하고 예방할 수 있다.

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

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

태그드 유니언 기능은 기존 C언어의 유니언 기능과 달리 데이터를 종류별로 구분할 수 있어 메모리 문제를 일으키지 않는다.

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

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

jyoung@yna.co.kr

▶제보는 카톡 okjebo

Copyright © 연합뉴스. 무단전재 -재배포, AI 학습 및 활용 금지

이 기사에 대해 어떻게 생각하시나요?