컴파일러
컴파일러란 컴파일 작업을 수행하는 도구이다. 👉 컴파일이란?
컴파일러 언어 vs 인터프리터 언어
컴파일러 언어
- 컴파일러 언어는 컴파일러를 통해 컴파일 타임에 전체 소스 코드를 통으로 한 번에 기계어로 변환 후 실행파일을 만든다.
- 컴파일러 언어는 컴파일 단계와 실행 단계가 각각 분리되어 있으며, 컴파일은 단 한번만 수행한다.
- 실행시에는 컴파일 과정을 거치지 않고 실행만 하면 되므로 코드 실행 속도가 빠르다. 단, 프로젝트의 규모가 클 경우 컴파일 시간이 오래 걸릴 수 있다는 단점이 있다.
컴파일러 언어의 종류
Dart, C, C++, JAVA 등
인터프리터 언어
인터프리터(interpreter)는 프로그래밍 언어의 소스 코드를 한 줄씩 바로 실행하는 컴퓨터 프로그램을 말한다.
- 컴파일 하지 않고 소스 코드를 한 줄씩 읽어들여 실행한다.
- 컴파일 하는 과정이 없기 때문에 컴파일 하는 시간은 소요되지 않으나, 실행시마다 인터프리트 과정이 반복 수행되어 실행 속도가 느리다는 단점이 있다.
인터프리터 언어의 종류
Python, Javascript 등
실제로 Dart와 파이썬을 사용했을 때를 생각해보면, Dart는 Pirnt문을 쭉 만들고 주안에 에러가 있을 경우 바로 터진다. 콘솔창에는 당연히 에러가 뜬다.
(컴파일로 에러 있는지 없는지 확인 후 실행)
반면 파이썬의 경우 우선 프린트 문을 쭉 실행시키다가 에러에서 멈춘다.
(프린트가 계속 실행되다가 에러가 생김)
파이썬의 경우 에러가 났는지 처음부터 알 수 없기 때문에 계속 실행시키고 에러를 확인해야한다는 단점이 있다.
컴파일러는 전체 메시지를 한번에 통역해준다면,
인터프리터는 실시간 통역이다.