반응형
일반 프로그램이 실행되는 과정
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 |
언제 타입을 확인하는가? | 런타임 | 컴파일 타임 |
언제 에러를 검출하는가? | 런타임 (대부분) | 컴파일 타임 (대부분) |
반응형
'Typescript' 카테고리의 다른 글
[Javascript/Typescript] Promise returned from forEach argument is ignored (0) | 2022.06.16 |
---|---|
[TypeScript + Node.js] 새 프로젝트 시작하기 (환경 설정, nodemon, rimraf) (1) | 2022.04.13 |
package.json 최신 버전으로 업데이트하기 (0) | 2022.02.21 |
[TypeScript] interface object 안 objects들 인터페이스, 배열 안 배열의 인터페이스 만들기 (0) | 2021.12.03 |
[TypeScript] 타입스크립트 설치 및 환경설정 (tsc-watch) (0) | 2021.08.07 |