미분류/Tip

transpile vs compile

DarrenKwonDev 2020. 5. 19. 09:05

compile

 

한 언어로 작성된 소스 코드를 다른언어(주로 저급 언어나 바이너리)로 변환하는 것을 의미합니다. 

 

실행시 기계어로 바꾸는 인터프리터 언어보다 빠릅니다만 컴파일 하는 시간(Compile time)이 필요로 합니다.

  • C를 어셈블리어나 기계어로 변환하는 과정을 컴파일이라고 할 수 있겠습니다. 

 

Transpile

 

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

 

ES6 문법 JS를 ES5 문법 JS으로 트랜스파일 (babel)

C++ 를 C로 트랜스파일

TS를 JS로 트랜스파일

 

 

그러나 "비슷한 수준의 추상화"의 기준이 애매모호하며 어떤 한 언어에서 다른 언어로 변환되는 것이기 때문에 둘은 자주 혼용됩니다. 

 

 

읽으면 좋은 글)

https://www.freecodecamp.org/news/what-is-type-erasure-in-typescript/