Typescript

TypeScript 타입스크립트 컴파일 과정

알로호모라 2021. 12. 13. 12:23
반응형

일반 프로그램이 실행되는 과정 

1. 프로그래머가 다수의 텍스트 파일을 작성한다. 

2. "compiler"라는 특별한 프로그램이 텍스트 파일을 파싱하여 추상 문법 트리 (AST, Abstract Syntax Tree) 자료구조로 변환시킨다.

    * AST는 공백, 주석, 탭 or 공백 등의 결과를 완전히 무시한다. 

3. 컴파일러는 AST를 바이트코드 (bytecode)라는 하위 수준의 표현으로 변환한다. 

4. 바이트코드가 만들어졌으면 런타임이라는 다른 프로그램에 바이트코드를 입력해 평가하고 결과를 얻을 수 있다. 

 

=> 컴파일러가 소스 코드를 파싱해 AST로 만들고 다시 AST를 바이트코드로 변환한 것을 런타임이 평가하도록 지시하는 것 

 

타입스크립트가 실행되는 과정 

1. 소스 코드 작성 by 프로그래머

2. 타입스크립트 소스 코드를 파싱하여 AST (추상문법트리)로 변환

3. 타입 검사기가 AST를 확인  *** 여기서 타입 검사가 이루어짐 

4. 컴파일러가 AST를 JavaScript로 변환한다. ( *** bytecode가 아닌) 

5.  JavaScript 소스를 AST로 변환

6. AST -> 바이트코드

7. 런타임이 바이트코드를 평가 

 

2~4번 : TSC가 수행

5~7번 : 브라우저, NodJS, 기타 자바스크립트 엔진 같은 자바스크립트 런타임이 실행 

 

 

타입 시스템 기능 자바스크립트 타입스크립트
타입 결정 방식 동적 정적
타입이 자동으로 변환되는가? O X
언제 타입을 확인하는가? 런타임 컴파일 타임
언제 에러를 검출하는가? 런타임 (대부분) 컴파일 타임 (대부분)

 

 

 

반응형