개발 , 컴퓨터, IT지식

Transpile(트랜트파일)과 Complie(컴파일)

김먼저 2022. 12. 1. 11:15

트랜스 파일컴파일이라는 두 용어를 헷갈려서 정리해보려고 합니다.

 

 

트랜스 파일과 컴파일을 같은 개념으로 사용하기도 하는데, 약간의 차이가 있습니다.

 

 

 

complie : 한 언어로 작성된 소스 코드를 다른 언어로 변환하는 것.
               ex) Java   → bytecode
                     C언어 → 기계어

 

Transpile : 한 언어로 작성된 소스 코드를 비슷한 수준의 추상화(Abstraction)를 가진 다른 언어로 변환하는 것.
               ex) C++ → C언어
                     coffescript → javascript

 

두 용어의 의미의 차이를 이해하기 위해 좀 더 쉬운 예를 하나 들어보자면

C#으로 작성된 소스 코드를 컴파일하면 소스 코드와 기계어 사이의 중간 단계 언어(IL-Intermediate Language)로

 

변하는데, 이 때 두 언어는 서로 매우 다른 추상화 수준을 가지고 있습니다. 그렇기 때문에 이 경우,

 

트랜스파일링(Transpiling)했다고 말하지 않습니다.

만약 TypeScript로 작성된 코드를 컴파일하면 JavaScript 코드로 변환되는데, 이 두 언어간의 추상 수준은 매우

 

비슷합니다. 이 때에는 '트랜스파일링(Transpiling)했다'라고 표현합니다.

*Transpiling 추가 예시
 CoffeeScript → JavaScript
 PureScript → JavaScript