분류 | 컴파일러 | 인터프리터 |
---|---|---|
번역 단위 | 전체 | 한줄 |
실행 속도 | 빠름 | 느림 |
번역 속도 | 느림 | 빠름 |
실행 파일 생성 여부 | O | X |
메모리 할당 여부 | O | X |
컴파일러는 고급 언어로 작성된 프로그램을 컴퓨터에서 즉시 실행될 수 있는 형태의 목적 프로그램으로 바꾸어주는 번역 프로그램이다.
컴파일 과정 내에서도 컴파일러가 존재하는데, 하드웨어에 종속적인 코드인 어셈블리어로 변환해주는 역할을 한다. 대표적으로 C언어의 컴파일 과정은 아래와 같다.
(출처 : https://blog.hexabrain.net/2)
컴파일 언어는 대표적으로 C, C++, C#, Java가 있다.
컴파일 언어는 원시 프로그램의 수정 없이 계속 반복으로 수행하는 시스템에 효율적이다.
인터프리터는 고급 언어로 작성된 원시 코드 명령어들을 한 번에 한 줄씩 읽어 들여서 실행하는 프로그램이다. 고급 명령어들을 중간 형태로 번역하고 그것을 바로 실행한다.
인터프리터 언어는 대표적으로 JavaScript, Python, SQL, Ruby가 있다.
인터프리터 언어는 이미 실행 중인 동안 프로그램을 변경할 수 있는 대화식 프로그래밍에 효율적이다.
참고 자료 및 출처 (감사합니다 ^^)
https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC)
https://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0
https://cbw1030.tistory.com/276
https://coding-factory.tistory.com/303
https://velog.io/@jaeyunn_15/OS-Compiler-vs-Interpreter