반응형
인터프리터
- 원시 프로그램을 한줄씩 저급언어(기계어)로 바꾸어 os에 인식시키는 것
- 고레벨의 언어를 중간코드로 변환하고 이를 각 행마다 실행.
- 플랫폼(하드웨어)에 종속되지 않는다
컴파일러
- 고급언어를 한번에 저급언어로 번역(컴파일)
*빌드 : 소스코드를 실행가능한 소프트웨어 파일로 만드는것. 컴파일은 빌드과정의 일부분이다.
(빌드를 도와주는 툴이 Ant, Maven, Gradle 등이 있다)
- 최초 실행하면 실행파일이 생성되고 다음 실행시 생성된 실행 파일이 실행되므로 빠르다
- 하드웨어에 종속된다
- 링커에 의해 목적파일이 다른 목적파일(다른 c파일)과 함께 실행파일로 만들어진다
- 로더에 의해 실행파일이 매모리위에 로드된다
인터프리터, 컴파일러 차이
인터프리터 | 컴파일러 | |
저급언어로 번역하는 방법 | 한줄씩 | 한번에 전체 |
중간생성되는 것 | 중간코드 | 실행파일 |
하드웨어 종속여부 | 종속안됨 | 종속됨 |
실행시간 | 재실행 할 때 마다 번역하므로 느림 | 최초 실행시 컴파일하는데 시간이 오래 걸리지만, 재실행시 빠름(실행파일 생성) |
메모리 | 적음 | 컴파일 과정에서 메모리 소모 큼 |
예시 | python, sql | C,C++,GO |
반응형