반응형
이번에는 Compliler와 Interpreter 차이에 대해 알아보겠습니다.
보통 프로그래머들은 프로그램을 작동시키는 소스코드를 작성할 때 고급 프로그래밍 언어로 작성한다.
고급 프로그래밍 언어는 사람의 입장에서 쉽게 이해 가능한 프로그래밍 언어다.
그러나 컴퓨터는 고급 프로그래밍 언어를 이해할 수 없다.
컴퓨터는 오직 0과 1로 구성된 바이너리 코드만 이해하는데 이를 기계어라고 이해한다.
고급 프로그래밍 언어로 작성된 소스코드를 기계어로 바꾸기 위해서 사용되는 것이 Compiler와 Interpreter이다.
Compiler과 Interpreter의 큰 역할은 같지만 작동 방식에서 차이가 있다. 이제 그 차이에 대해 알아보겠다.
참고
- 원시 코드 - 고급 프로그래밍 언어로 작성된 소스 코드, 프로그래머가 작성한 코드 파일.
- 목적 코드 (Object code) - 소스코드가 컴파일을 통해 나온 결과물. 컴파일이 완료된 파일.
Interpreter
- 인터프리터는 한 번에 한 줄의 프로그램 코드만 기계어로 번역한다. 그러면 그것을 바로 실행. 번역과 실행이 동시에 이루어진다.
- 인터프리터는 보통 소스 코드를 분석(번역)하는 데 더 적은 시간이 걸린다.
- 그러나 전체 프로세스 실행 시간은 컴파일러보다 상대적으로 느리다.
- 중간에 목적 코드를 만들지 않는다. 목적코드가 있는 파일을 만들지 않아 메모리를 사용하지 않는다.
- 첫 번째 오류가 발생할 때까지 프로그램을 계속 번역합니다. 오류가 발견되면 작동이 중지되어 디버깅이 쉽다.
- 인터프리터는 JavaScript, Python, Ruby 같은 언어에서 사용된다.
Compiler
- 컴파일러는 전체 프로그램을 스캔하여 한 번에 기계어로 번역한다.
- 컴파일러는 일반적으로 소스 코드를 분석()번역) 하는 데 많은 시간이 걸립니다.
- 그러나 전체 프로세스 실행 시간은 인터프리터보다 비교적 빠르다.
- 중간에 목적 코드가 만들어져 링킹을 통해 실행 프로그램을 생성한다. 이 때 메모리를 사용하지만 다음에는 이 목적코드가 있는 파일만 실행시키므로 전체 프로세스 실행 시간이 빠른 것이다.
- 컴파일러는 완전한 프로그램을 스캔한 후에만 오류 메시지를 생성하므로 컴파일러로 작업하는 동안 디버깅이 상대적으로 더 어렵다.
- 컴파일러는 C, C++ 같은 언어에서 사용된다.
참고 문헌
https://www.programiz.com/article/difference-compiler-interpreter
https://www.businessinsider.in/difference-between-compiler-and-interpreter/articleshow/69523408.cms
https://www.techopedia.com/definition/7793/interpreter
틀린 내용과 덧 붙일 내용이 있다면 알려주시면 감사드리겠습니다.
이만 포스팅을 마치겠습니다.
반응형
댓글