본문 바로가기
대메뉴 바로가기
KAIST
연구뉴스
유틸열기
홈페이지 통합검색
-
검색
메뉴 열기
C-%EB%9F%AC%EC%8A%A4%ED%8A%B8
최신순
조회순
미국 국방부가 주목한 C-러스트 기술 선도하다
컴퓨터 시스템을 작동시키기 위해서는 소프트웨어를 작성해야 하는데 그때 필요한 언어가 바로 프로그래밍 언어이다. 실행속도도 빠르고 유지보수도 쉬운 언어가 C언어인데 메모리 할당 및 관리 등에 치명적인 문제점을 가지고 있다. 이런 문제를 해결하기 위해 개발된 프로그래밍 언어는 러스트이다. 미국 백악관이나 국방성에서 메모리 문제를 막기 위해 러스트같이 안전한 언어 사용을 촉구하고 있는데 우리 대학 연구진이 C-러스트 코드 번역 기술을 이미 선제적으로 개발하고 선도하고 있어 화제다. 우리 대학 전산학부 류석영 교수 연구팀(프로그래밍 언어 연구실)이 C언어의 유니언(union)*을 러스트의 태그드 유니언(tagged union)으로 변환하는 기술을 세계 최초로 개발했다고 13일 밝혔다. *유니언: 여러 종류의 데이터를 같은 공간에 보관해 메모리 효율을 높이는 C언어의 핵심 기능이다. 그러나 보관된 데이터가 어떤 종류인지 구분하지 않아 메모리 문제를 일으킬 수 있다. **태그드 유니언: 같은 공간에 보관할 수 있는 여러 종류의 데이터 중 어떤 종류의 데이터를 보관하는지 태그를 붙여서 구분하여, 메모리 문제를 일으키지 않는다. 연구팀은 C언어의 유니언에 특화된 새로운 프로그램 분석 기법을 고안해 러스트의 태그드 유니언으로 자동 번역하는 데 성공했다. 올해 2월 백악관에서도 C언어의 사용을 중단하라고 촉구한 바가 있고(https://www.whitehouse.gov/wp-content/uploads/2024/02/Final-ONCD-Technical-Report.pdf) 미국 국방고등연구계획국(이하 DARPA)에서 C언어로 작성된 코드를 러스트(Rust)로 자동 번역하는 기술을 개발하는 연구 과제를 발표했다.(https://www.darpa.mil/program/translating-all-c-to-rust) DARPA는 미국 국방성의 연구·개발을 담당하는 기관이며 인터넷의 원형인 아파넷(ARPANET)을 개발하는 등 혁신적이고 영향력 있는 연구를 지원해 왔다. DARPA는 이 과제를 제안하며 C의 메모리 문제를 막기 위해 러스트같이 안전한 언어를 사용해야 한다고 밝혔다. 러스트는 2015년부터 개발된 프로그래밍 언어다. 운영 체제, 웹 브라우저 개발 등에 쓰이며, 2022년에는 리눅스(Linux) 개발에도 공식 사용되기 시작했다.(https://www.infoq.com/news/2022/12/linux-6-1-rust/) C와 달리 프로그램 실행 전에 메모리 문제를 탐지하고 예방할 수 있는 것이 특징이다. 류 교수 연구진은 2023년 5월과 2024년 6월에 각각 C의 뮤텍스(mutex)*와 출력 파라미터(output parameter)**를 러스트로 변환하는 기술을 세계 최초로 개발해, 최우수 국제 학술대회인 국제소프트웨어엔지니어링학회(ICSE)와 프로그래밍언어설계구현학회(PLDI)에 발표한 바 있다. *뮤텍스: 프로그램 동기화에 필요한 기능 **출력 파라미터: 계산 결과 전달에 사용되는 기능 C언어와 러스트의 큰 간극으로 인해 세계적으로도 C-러스트 코드 번역 기술을 성공적으로 개발한 연구팀은 극소수다. 그마저도 포인터(pointer)*를 변환하는 데 머물고 있다. 그러나 류석영 교수 연구팀은 C의 여러 핵심 기능을 변환하는 기법을 연달아 제시해 C-러스트 코드 번역 기술을 선도하고 있다. *포인터: 데이터 저장 위치를 표현하는 기능 류석영 교수는 “안전한 소프트웨어 제작을 목표로 연구하면서 C-러스트 코드 번역의 중요성을 일찍이 파악하고 각종 프로그래밍 언어 기법들을 코드 번역에 적극적으로 도입하여 나온 결과”라면서, “완전한 자동 번역을 위해 아직 풀어야 할 난제가 많으니 후속 연구에 정진하여 계속 분야를 선도하겠다”고 말했다. 전산학부 홍재민 석박사통합과정 학생이 제1 저자로 참여한 이번 연구 결과는 최우수 국제 학술대회인 국제자동소프트웨어엔지니어링학회(ASE)에 채택됐다(논문명: To Tag, or Not to Tag: Translating C's Unions to Rust's Tagged Unions). 한편 이번 연구는 한국연구재단 선도연구센터 및 중견연구자지원사업, 정보통신기획평가원(IITP), 삼성전자의 지원을 받아 수행됐다.
2024.08.13
조회수 3151
<<
첫번째페이지
<
이전 페이지
1
>
다음 페이지
>>
마지막 페이지 1