반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- react-router-dom
- mysql
- JEST
- typescript
- nodejs
- ExpressJS
- Glob Pattern
- Switch 사용불가
- Board
- Passport
- jest.config.mjs
- nunjucks
- sequelize
Archives
- Today
- Total
게으른 나르의 코딩
[Knowledge] 인터프리터 언어 vs 컴파일러 언어 본문
반응형
인터프리터 언어 | 컴파일러 언어 |
코드가 실행되는 단계인 런타임에 문 단위로 한 줄씩 중간 코드인 바이트코드로 변환한 후 실행한다. | 코드가 실행되기 전 단계인 컴파일 타임에 소스코드 전체를 한번에 머신 코드로 변환한 후 실행한다. |
실행 파일을 생성하지 않는다. | 실행 파일을 생성한다. |
인터프리트 단계와 실행 단계가 분리되어 있지 않다. 인터프리터는 한 줄씩 바이트코드로 변환하고 즉시 실행한다. |
컴파일 단계와 실행 단계가 분리되어 있다. 명시적인 컴파일 단계를 거치고, 명시적으로 실행 파일을 실행한다. |
코드가 실행될 때마다 인터프리트 과정이 반복 수행된다. | 실행에 앞서 컴파일은 단 한번 수행된다. |
인터프리트 단계와 실행 단계가 분리되어 있지 않고 반복 수행되므로 코드 실행 속도가 비교적 느리다. | 컴파일과 실행 단계가 분리되어 있으므로 코드 실행 속도가 빠르다. |
하지만 대부분의 모던 부라우저에서 사용되는 인터프리터는 전통적인 컴파일러 언어처럼 명시적인 컴파일 단계를 거치지는 않지만 복잡한 과정을 거치며 일부 소스코드를 컴파일하고 실행한다.
이를 통해 인터프리터 언어의 장점인 동적 기능 지원을 살리면서 실행 속도가 느리다는 단점을 극복한다. 따라서 현재는 컴파일러와 인터프리터의 기술적 구분이 점차 모호해져 가는 추세다.
반응형
'Support > Knowledge' 카테고리의 다른 글
[Knowledge] 객체지향(Object-Oriented)에 대해서 (0) | 2022.10.21 |
---|---|
[Knowledge] Glob Pattern 이란? (0) | 2022.10.18 |
[Knowledge] 절대 경로와 상대 경로 (0) | 2022.06.08 |
[Knowledge] 언매니지드 언어와 매니지드 언어(+가비지 콜렉터) (0) | 2022.05.23 |
Comments