본문 바로가기
대메뉴 바로가기
KAIST
연구뉴스
유틸열기
홈페이지 통합검색
-
검색
메뉴 열기
%EB%A5%98%EC%84%9D%EC%98%81
최신순
조회순
미국 국방부가 주목한 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
조회수 3113
자바스크립트 안정성을 책임지다
전 세계에서 가장 널리 사용되는 프로그래밍 언어 중 하나인 자바스크립트*는 컴퓨터 뿐 아니라 스마트폰, 스마트시계 등 다양한 기기에서 동작하기 때문에, 자바스크립트 실행기를 올바르게 구현하는 것이 매우 중요하다. 또한 프로그램 개발 및 배포 과정에서 사용되는 소프트웨어의 안정성 보장이 중요하다. *자바스크립트: C나 Java와 같이 컴파일 후 사용해야하는 프로그래밍 언어와 달리 코드를 작성하고 바로 실행해 볼 수 있음 우리 대학 전산학부 류석영 교수 연구팀이 고려대 박지혁 교수와 공동연구를 통해 인간 친화적인 형태인 영어로 작성한 자연어 명세에서 컴퓨터에 친화적인 형태인 기계화 명세를 자동으로 추출해 이를 기반으로 자바스크립트 생태계 안정성을 보장하는 기술을 개발하는데 성공했다고 7일 밝혔다. 현재 자바스크립트는 2015년부터 매년 새로운 기능이 추가될 정도로 급성장에 따른 부작용으로 프로그램 실행 중 작동이 되지 않거나 개인 정보 유출 등 언어 생태계의 안정성을 보장하기가 상당히 어려운 상황이다. 연구팀은 이번 기술을 활용하여 크롬 및 엣지와 같은 웹 브라우저에 내장된 자바스크립트 엔진 및 코드 변환 도구에서 수많은 결함을 검출해 내는 데 성공했다. 또한, 자바스크립트용 정적 분석기*를 결함 없이 자동으로 생성하는 데 성공해, 기존 수동으로 개발돼오던 정적 분석기보다 우수한 안정성을 제공했다. *정적 분석기: 주어진 프로그램을 실행하지 않고 자동으로 분석하는 도구 이러한 장점을 인정받아, 자바스크립트 언어의 명세를 관리하는 위원회에서는 자바스크립트에 새로운 기능을 추가할 때마다 이 기술을 필수적으로 사용하도록 했다. 이 기술은 자바스크립트 언어의 명세를 작성하는 도중에도 결함을 검출할 수 있어서, 자바스크립트 언어의 설계 초기 단계에서 발생할 수 있는 결함을 줄이는 효과를 보였다. 연구팀은 이번 연구를 통해 수년간 논문으로 발표한 결과물들을 산업계에서 널리 사용되는 자바스크립트에 성공적으로 적용, 자바스크립트뿐 아니라 다양한 프로그래밍 언어에도 적용할 수 있는 기틀을 마련했다. 연구팀은 이번 연구를 기반으로, 자바스크립트 후속 언어로 빠르게 성장하고 있는 웹어셈블리 언어에도 관련연구를 적용하고, 네트워크 소프트웨어용 프로그래밍 언어인 P4에 적용하는 연구를 코넬대학 연구팀과 공동으로 진행하고 있다. 연구팀은 모든 연구 결과물을 오픈 소스 SW로 개발해, 누구나 활용할 수 있도록 공개했다. 여러 기기가 스마트 기능을 갖게 되면서 개인 정보 유출 등 심각한 문제가 많이 발생하는 상황에서, 브라우저만 있으면 어느 기기에서나 동작하는 자바스크립트 코드가 올바르게 동작하도록 돕는 데 기여했다. 류석영 교수는 "10년이 넘는 동안 뚝심 있게 자바스크립트를 연구한 학생들의 노력이 만들어 낸 획기적인 기법”이라며, "더 많은 프로그래밍 언어에 적용해, 일상생활에서 더 안전하고 올바르게 동작하는 소프트웨어를 사용할 수 있기를 기대한다”고 말했다. 이번 연구는 컴퓨팅 분야 최고 학술지인 'Communications of the ACM' 2024년 5월호에 게재되고 온라인으로는 4월 24일 발표됐다. (논문 제목: JavaScript Language Design and Implementation in Tandem, https://cacm.acm.org/research/javascript-language-design-and-implementation-in-tandem/ https://www.youtube.com/watch?v=JGxc-KIUnQY) 한편 이번 연구는 한국연구재단 중견연구자지원사업 및 선도연구센터와 정보통신기획평가원(IITP), 삼성전자의 지원을 받아 수행됐다.
2024.05.07
조회수 3410
<<
첫번째페이지
<
이전 페이지
1
>
다음 페이지
>>
마지막 페이지 1