CWN(CHANGE WITH NEWS) - 파파고처럼 "프로그래밍 언어"를 번역할 수 있을까? ... 트랜스 컴파일러  6종

  • 구름많음울산12.9℃
  • 구름조금울릉도13.7℃
  • 구름조금구미9.0℃
  • 맑음보령9.7℃
  • 맑음원주12.5℃
  • 맑음인천11.2℃
  • 구름많음경주시9.5℃
  • 맑음청주12.8℃
  • 구름많음거제15.1℃
  • 맑음장수7.0℃
  • 구름많음대관령7.1℃
  • 맑음홍천7.8℃
  • 구름조금의성6.8℃
  • 구름많음진주10.5℃
  • 맑음영광군11.7℃
  • 구름많음백령도10.6℃
  • 구름많음고흥12.4℃
  • 맑음충주8.6℃
  • 구름많음합천10.5℃
  • 구름많음서귀포15.3℃
  • 구름많음양산시11.1℃
  • 구름많음성산12.4℃
  • 구름많음해남10.6℃
  • 구름많음여수13.6℃
  • 맑음수원10.0℃
  • 구름조금목포13.4℃
  • 맑음보은8.2℃
  • 맑음울진10.2℃
  • 구름조금부산14.6℃
  • 구름많음제주15.9℃
  • 구름조금강진군13.2℃
  • 맑음전주12.3℃
  • 구름많음포항13.3℃
  • 맑음동해11.0℃
  • 구름조금북강릉11.7℃
  • 맑음남원8.4℃
  • 구름많음산청9.4℃
  • 구름조금순창군9.5℃
  • 맑음봉화3.8℃
  • 맑음부여7.9℃
  • 구름많음거창9.3℃
  • 맑음천안11.3℃
  • 맑음인제6.7℃
  • 맑음강화8.8℃
  • 맑음태백5.9℃
  • 맑음세종11.7℃
  • 맑음정선군5.4℃
  • 맑음고창군10.3℃
  • 맑음대전12.4℃
  • 맑음영주6.6℃
  • 구름조금장흥9.1℃
  • 맑음정읍11.2℃
  • 맑음동두천10.0℃
  • 맑음광주13.1℃
  • 맑음문경9.7℃
  • 구름많음고산15.5℃
  • 구름많음청송군6.2℃
  • 맑음상주13.3℃
  • 구름조금광양시12.8℃
  • 맑음속초11.0℃
  • 구름많음창원12.8℃
  • 구름조금남해13.6℃
  • 구름많음통영13.8℃
  • 구름조금보성군10.8℃
  • 맑음서청주10.1℃
  • 맑음부안10.5℃
  • 맑음서산8.4℃
  • 구름많음북창원14.2℃
  • 맑음고창11.7℃
  • 구름많음함양군8.8℃
  • 맑음안동9.5℃
  • 맑음강릉11.6℃
  • 구름많음북부산10.9℃
  • 맑음춘천6.3℃
  • 맑음북춘천6.2℃
  • 맑음이천11.0℃
  • 구름많음영덕9.7℃
  • 맑음영월8.6℃
  • 구름많음밀양9.8℃
  • 맑음제천6.3℃
  • 맑음파주8.4℃
  • 구름많음영천8.9℃
  • 맑음철원10.8℃
  • 맑음흑산도13.0℃
  • 구름많음대구11.5℃
  • 구름많음김해시13.9℃
  • 맑음양평11.7℃
  • 구름많음의령군8.0℃
  • 맑음군산12.4℃
  • 맑음추풍령12.0℃
  • 구름조금순천7.8℃
  • 구름많음완도14.1℃
  • 맑음금산12.2℃
  • 맑음임실8.4℃
  • 맑음홍성11.8℃
  • 구름많음진도군10.1℃
  • 맑음서울11.6℃
  • 2025.11.24 (월)

파파고처럼 "프로그래밍 언어"를 번역할 수 있을까? ... 트랜스 컴파일러  6종

이진영 / 기사승인 : 2021-09-09 21:40:06
  • -
  • +
  • 인쇄

영어를 한국어로, 한국어를 중국어로… 서로 다른 언어를 번역하는 파파고, 구글 번역기를 보며 "코드를 번역해주는 도구는 없을까?"라고 생각해본 적이 있는가? 기존의 프로그래밍 코드를 더 효율적인 언어로 마이그레이션 하는 경우가 많다. 그런데 프로그램 소스 코드를 한 언어에서 다른 언어로 바꾸는 것은 대상 언어 및 목표 언어 모두에 대한 전문 지식이 필요하며 많은 비용이 들 수 있다. 예를 들어 호주 연방 은행은 코볼(Cobol)에서 자바로 번환하는 데 5년 동안 약 7억 5천만 달러를 지출했다.

그런데 프로그래밍 언어 간의 구문 변환만이 코드를 한 언어에서 다른 언어로 변환하는 방법은 아니다. 트랜스 컴파일러(Transcompiler)를 사용하면 코드를 처음부터 다시 작성하지 않고 시간을 절약할 수 있다.

트랜스 컴파일러 또는 소스 대 소스 컴파일러(source-to-source compiler)는 프로그램의 소스 코드를 다른 언어로 변환하는 컴파일러다. 프로그래밍 언어로 작성된 프로그램의 소스 코드를 입력받아 다른 프로그래밍 언어로 동등한 소스 코드를 작성한다. 이전 버전의 프로그래밍 언어로 작성된 프로그램을 동일한 언어의 최신 버전으로 변환하는 데 사용되기도 한다.

아래는 애널릭틱스 인디아 매거진이 소개한 프로그래밍 언어 간에 코드를 변환할 수 있는 6가지 트랜스 컴파일러 도구이다.

1. JLCA : JLCA(Java Language Conversion Assistant)는 자바(Java) 코드를 비주얼 C#(Visual C#) 코드로 자동 변환하는 도구이다.

2. BCX : BCX는 BCX 베이직 소스 코드 파일을 C 소스 코드 파일로 변환하는 작은 명령줄 도구이다. 변환된 코드는 C 또는 C++ 컴파일러를 사용해 컴파일할 수 있다.

3. 퍼슨 : 퍼슨(Perthon)은 파이썬 소스 코드를 펄(Pearl) 5.x 소스 코드로 변환한다. 데미안 콘웨이(Damian Conwa)의 구문 분석을 통해 구문을 분석한다. 디센트(Descent)를 읽고 파이썬 참조 매뉴얼 및 BNF 문법에 따라 파이썬 언어를 다시 구현한다.

4. 구글 GWT : 구글 GWT는 자바 개발 도구를 사용해 자바에서 AJAX 앱을 만들고 디버깅하는 데 사용된다. GWT 컴파일러는 사용자가 자바 응용 프로그램을 상품으로 푸시 할 때 브라우저 호환 자바스크립트(Javascript) 및 HTML로 변환한다.

5. 페이스북 힙합 : 페이스북 힙합은 PHP 소스 코드를 프로그래밍 방식으로 고효율 C++로 변환한 뒤 g++를 사용해 컴파일한다.

6. 페이스북 트랜스코더 AI : 트랜스코더(Transcoder)는 C++, 자바, 파이썬을 번역할 수 있는 페이스북 시스템이다. 트랜스코더는 언어 간 언어 모델 사전 교육으로 시작한다. 이는 프로그래밍 언어에 관계없이 동일한 명령을 표현하는 코드 조각을 동등한 표현으로 변환한다.

트랜스 컴파일러는 레거시 코드를 변환해 차세대 기반 프로그래밍 언어 또는 하위 호환성을 유지하지 못하는 API를 사용할 수 있게 한다. 단 언어마다 구문이 다르고 플랫폼 API, 표준 라이브러리 함수 및 가변 유형에 의존하기 때문에 실제 구현이 어렵다는 단점이 있다.

레거시 코드를 다른 프로그래밍 언어로 마이그레이션 하는 작업은 다양한 수준에서 수행될 수 있는데, 단계가 높아질수록 수동 변환이 필요하게 된다. 마이그레이션은 코드를 한 언어에서 다른 언어로 변환하는 기본 단계부터 시스템 구조를 절차적 언어로 작성된 코드에서 객체 지향 언어로 작성된 코드로 변환하는 등 높은 단계까지 다양하다. 글로벌 아키텍쳐를 변경해야 하는 경우도 있다.

한편 새로운 기술이 매일 등장함에 따라 서로 다른 언어 간의 일관성을 유지하는 것이 어려워지며, 프로그래밍 언어가 발전하며 새로운 기능이 도입되는 만큼 기술 발전에 따라 컴파일러 업데이트가 필요하다.

[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

최신기사

뉴스댓글 >

- 띄어 쓰기를 포함하여 250자 이내로 써주세요.
- 건전한 토론문화를 위해, 타인에게 불쾌감을 주는 욕설/비방/허위/명예훼손/도배 등의 댓글은 표시가 제한됩니다.

댓글 0

Today

Hot Issue