컴파일과 인터프리터
✒️ 2025-05-15 14:52 내용 수정
1. 인터프리터
프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경
- 참고 자료 : 위키백과 인터프리터
- 고급 언어로 작성된 원시 코드 명령어들을 한 번에 한 줄씩 읽어들여 실행한다.
- 원시 코드를 기계어로 번역하는 컴파일러와 대비된다.
- 프로그램 기능적으로
- 소스 코드를 직접 실행하거나
- 소스 코드를 효율적인 다른 중간 코드로 변환하고, 변환한 것을 바로 실행하거나
- 인터프리터 시스템의 일부인 컴파일러가 만든 미리 컴파일된 저장 코드의 실행을 호출한다.
- 원시 프로그램의 크기가 크다면 컴파일 과정이 오래 걸릴 수 있는 반면, 인터프리터 언어는 고급 프로그램을 즉시 실행할 수 있어 개발 단계에서 종종 사용된다.
2. 컴파일러
특정 프로그래밍 언어로 쓰여진 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램
- 참고 자료 : 위키백과 컴파일 언어, 위키백과 컴파일러
- 원래의 문서를 소스 코드 혹은 원시 코드라 부르고, 출력된 문서를 목적 코드라고 부른다.
- 즉 컴파일은 원시 코드에서 목적 코드로 옮기는 과정이다.
- 고급 프로그래밍 언어를 실행 프로그램으로 만들기 위해 저급 프로그래밍 언어로 바꾸는데 사용된다.
- 고수준 언어는 사람이 이해하기 쉬운 형태의 언어이고, 저급 언어는 실행 가능한 언어인 기계어이다.
- 컴파일러는 좁은 의미에서 고수준 언어의 소스 코드를 저수준 언어(어셈블리어, 기계어)로 번역하는 프로그램을 가리킨다.
- 컴파일러는 코드를 옮기는 과정에서 프로그램의 뜻을 보존해야 하고, 입력으로 들어온 프로그램을 어떤 면에서든지 개선해야 한다.
- 컴파일 언어는 인터프리터를 거치지 않아 인터프리터 언어보다 속도가 상대적으로 빠르다.
- C, C++, Java, Go, 베이직, 러스트 등이 있다.
- C/C++과 같은 고급 언어는 직접 기계어 코드로 변환된다.
- Java(Java)는 바이트 코드로 변환하여 중간 단계의 코드를 생성한 후 이것을 해석하여 실행한다.
- 한 번 컴파일된 바이트 코드는 다른 플랫폼에서 재컴파일 없이 실행 가능하다.
- 하지만 바이트 코드를 해석해서 실행할 프로그램의 구조가 필요하고, 직접 기계어 코드를 실행하는 것보다 느리다.