top of page

동일하개

  • 유정균 백유미 이혜연
  • 2023년 11월 12일
  • 1분 분량

최종 수정일: 2023년 11월 14일



팀명

동일하개

팀원 명단

유정균 백유미 이혜연

지도교수

조은선 교수님

작품 배경 및 목적

현재 세계에 존재하는 수천 가지의 프로그래밍 언어 사이에는 실행 속도, 호환성 등의 성능 차이가 존재한다. 각각의 언어마다 각자의 특징을 가지기 때문에 프로그램마다 적합한 언어가 각각 존재하는 것은 당연하다. 게임을 개발하는 경우에는 성능과 그래픽 처리를 최적화하는 C++과 C#가 가장 적합한 언어이고 특정 하드웨어 아키텍처를 개발할 때는 해당 아키텍처와 호환성이 뛰어난 언어가 사용된다. 이러한 언어 간의 차이는 다른 언어로 작성된 같은 의미의 코드 사이에는 성능 차이가 존재하는 이유가 된다. 이 특성을 이용해 기존에 작성된 프로그램 소스 코드를 다른 언어로 전환했을 때 성능 향상이 가능하거나 최적화가 필요한 경우, 유지 보 수와 확장을 용이하게 하기 위한 경우에도 코드 베이스를 다른 언어로 변환함으로써 해결이 가능하다. 하지만 다른 언어로 변경하는 작업은 많은 시간과 노동력이 요구되는 작업이기 때 문에 인공지능 또는 자동화 도구를 사용하게 된다. 그러나 인공지능의 작동은 완벽하지 않기 때문에 오류 사고가 발생할 수 있다. 이러한 오류 발생 가능성이 존재하는 도구를 사용해 자동 화된 변환을 진행하는 것은 위험성이 있다. 본 논문에서는 사용자가 자동화된 코드 변환 도구 를 이용해 코드 변환을 시행했을 때, 변환 과정에서 코드의 의미상의 변화가 없는지 동일성을 판단하고자 하였다.

작품 내용

프로그래밍 언어에서는 실행 속도, 호환성 등 성능 차이와 각 프로그램에 가장 적합한 언어가 존재한다. 본 연구에서는 두 개의 언어로 된 서로 다른 두 코드의 의미 동일성을 확인하는 도 구를 개발하여 언어를 변경했을 시에 성능을 향상시킬 수 있는 프로그램을 대상으로 동일성을 판단하고, 언어 간의 컴파일 결과를 이용해 동일함을 결론짓는 비교 기준에 대해서 모색하였 다. 본 논문에서는 두 코드에서 동일한 변수에 대해 처리되는 결과를 비교하는 도구를 제안한 다. 해당 도구는 LLVM Pass 조작 방법을 사용하여 비교 대상을 찾고 동일성을 가정하는 코드 를 삽입하며, 해당 코드는 KLEE를 실행해 동일성을 판단한다.


 







Comentários


bottom of page