컴파일러와 인터프리터는 프로그래밍 언어로 작성된 코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 역할.

컴파일러

컴파일러는 프로그램 전체를 스캔하여 한번에 기계어로 변환.

실행시간을 보면 한 번에 한 문장씩 번역하는 인터프리터 보다 속도가 빠름

컴파일러는 고급 언어로 작성된 소스를 기계어로 번역하고 이 과정에서 오브젝트 코드라는 파일을 만드는데, 이 오브젝트 코드를 묶어서 하나의 실행 파일로 다시 만드는 링킹이라는 작업을 해야함.

컴파일러는 전체 코드를 검사한 후 오류 메기지를 생성. ⇒ 실행 전에 오류를 발견 할 수 있다.

모든 오류를 컴파일 시점에 한꺼번에 확인이 가능.

대표적인 언어로는 C, C++, JAVA

인터프리터

컴파일러와 다르게 프로그램 실행 시 한 번에 한 문장씩 변환.

컴파일러보다 실행 시간이 더 느리다.

하지만, 메모리 효율이 좋은데 그 이유는 컴파일러처럼 목적코드르 만들지도 않고, 링킹 과정도 거치지 않기 때문.

인터프리터는 한 번에 한 문장씩 변환하기 때문에 오류를 만나게 되면 그 즉시 멈추고 알려준다.

대표적인 언어로는 Python, Ruby, JavaScript