본문 바로가기

Typescript

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

반응형

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

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
언제 타입을 확인하는가? 런타임 컴파일 타임
언제 에러를 검출하는가? 런타임 (대부분) 컴파일 타임 (대부분)

 

 

 

반응형