이러쿵저러쿵


트랜스파일이란?


트랜스파일(transpile)이란 어떤 특정 언어로 작성된 소스 코드를 다른 소스 코드로 변환하는 것을 말합니다.

종종 트랜스파일이란 용어를 컴파일(compile)과 같은 개념으로 사용하기도 하는데요, 약간의 차이가 있습니다.


컴파일의 경우, 한 언어로 작성된 소스 코드를 다른언어로 변환하는 것을 의미합니다. 

C언어로 작성된 소스코드를 기계어로 변환하는 과정을 컴파일이라고 할 수 있겠습니다.


트랜스파일은 한 언어로 작성된 소스코드를 비슷한 수준의 추상화(Abstraction)를 가진 다른 언어로 변환하는 것을 말합니다.


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

C#으로 작성된 소스코드를 컴파일하면 소스코드와 기계어 사이의 중간 단계 언어(IL, Intermediate Language)로 변하는데, 이때 두 언어는 서로 매우 다른 추상화 수준을 가지고 있습니다. 그렇기 때문에 이 경우, 트랜스파일링(transpiling)했다고 말하지 않습니다.


만약 TypeScript 로 작성된 코드를 컴파일하면 JavaScript 코드로 변환되는데요. 이 두 언어간의 추상 수준은 매우 비슷합니다. 이 때에는 트랜스파일링했다라고 표현합니다.

더 살펴보면, C++ 에서 C 언어 코드로, CoffeeScript에서 Javascript 로, PureScript에서 Javascript로 변환되는 형태는 트랜스파일링으로 불릴 수 있습니다.




Comment +0

티스토리 툴바