AiPE
컴파일러(Compiler)와 인터프리터(Interpreter)의 정의와 장단점 및 특징 본문
[XiBBaL] Study/Java
컴파일러(Compiler)와 인터프리터(Interpreter)의 정의와 장단점 및 특징
Oshimaker XiBBaL 2024. 3. 25. 21:26반응형
컴파일러와 인터프리터는 사용자가 작성한 코드(프로그래밍 언어)를 컴퓨터가 알아들을 수 있는 언어(기계어)로 변환하는 데 사용하는 두 가지 대표적인 방법론이다.
변환에 컴파일러를 사용하는 언어를 컴파일러 언어, 인터프리터를 사용하는 언어를 인터프리터 언어라고 한다.
컴파일러 (Compiler) 언어 |
프로그램 전체를 한꺼번에, 한 번에 번역하여 기계어로 변환하는 방식이다. 소스 코드를 먼저 번역해두어 이를 하나의 실행 파일로 만든 뒤, 해당 실행 파일을 실행한다. |
대표적인 컴파일러 언어는 C, C++, Java등이 있다.
인터프리터 (Interpreter) 언어 |
소스 코드를 한 줄씩 읽어들여 해당 줄을 즉시 실행하는 방식이다. 즉, 별도의 실행 파일 생성 과정 없이, 소스 코드의 번역과 실행이 동시에 이루어진다. |
대표적인 인터프리터 언어는 Python, JavaScript, Ruby등이 있다.
컴파일 언어와 인터프리터 언어의 차이는 아래와 같다.
컴파일러 (Compiler) 언어 | 인터프리터 (Interpreter) 언어 |
① 소스 코드와 별도로, 실행 파일이 생성됨 자바의 경우, javac 컴파일러를 통해 project.java와 별개로 project.class 파일이 생성되며, 자바 런쳐는 이 class파일을 실행 ② 속도가 상대적으로 빠름 컴파일러가 소스코드를 전체적으로 분석하고 최적화하는 과정을 거치기 때문에 인터프리터에 비해 빠른 경향 존재 ③ 디버깅 난이도가 높음 오류가 발생하면 전체 코드를 분석해 오류 지점을 찾아야 하기 때문에 디버깅의 난이도가 인터프리터에 비해 높은 편 ④ 이식성이 상대적으로 나쁨 컴파일러를 통한 별개의 실행 파일은 특정 플랫폼에서 실행되기 위해 만들어진 파일이므로, 이식성이 낮을 수 있음 → java의 경우 JVM을 통해 이러한 문제를 해결 |
① 별도의 실행 파일이 생성되지 않음 소스 코드를 직접 번역하며 실행하기 때문에 별도의 실행 파일이 생성되지 않음 ② 속도가 상대적으로 느림 번역 과정과 실행 과정이 동시에 일어나기 때문에 일반적으로, 컴파일러 언어에 비해 느린 경향 존재 ③ 디버깅 난이도가 낮음 오류가 발생한 순간에 실행이 멈추기 때문에 오류 지점을 찾기 쉬운 편 ④ 이식성이 상대적으로 높음 인터프리터는 컴파일러 언어에 비해 이식성은 좋은 편 |
반응형
'[XiBBaL] Study > Java' 카테고리의 다른 글
명시적 형 변환과 묵시적 형 변환 (0) | 2024.03.25 |
---|---|
상수(Constant)와 리터럴(Literal)의 정의와 관계 (cf. 프로그래밍에서의 상수와 수학에서의 상수) (0) | 2024.03.25 |
Java 자료형 총정리 (0) | 2024.03.25 |
부동 소수점 방식의 정의와 컴퓨터가 부동 소수점 방식을 취하는 이유 (0) | 2024.03.25 |
보수(Complement)의 정의와 컴퓨터가 음수를 보수로 저장하는 이유 (0) | 2024.03.25 |