Computer Science

컴파일 언어(Compile Language) VS 인터프리터 언어(Interpreter Language)

yunajoe 2022. 11. 5. 12:07

컴파일(Compile) 언어

-  소스 코드를 기계어로 한 번에 컴파일(Compile time) 한 후에 실행파일 만들고 실행(Runtime)

-  ex) C, C++, C#, Java

컴파일(Compile)과정

cf.빌드(build) 

- 컴퓨터에서 이해할 수 있는, 즉 실행 가능한 파일로 만드는 과정

- 우리가 만든 소스코드를 '빌드'하면 실행 파일을 얻는다

- 실행파일은 CPU가 읽을 수 있는 이진코드인 기계어(Machine Code)로 이루어져 있다

 

장점  단점
- 이미 기계어로 번역된 파일을 컴퓨터가 실행하므로 스크립트 언어에 비해 실생 속도가 빠르다 

- 소스코드에 문법적 오류가 있으면 컴파일 에러를 발생시켜 디버깅이 수월(실행전)



 - 규모가 큰 프로그램은 컴파일 시 오래걸린다 


- 일반적으로 문법적 제약이 많아 작성이 비교적 어렵다 

- 운영체제마다 컴파일을 실행시키는 방식이 다르기 때문에 운영체제마다 다른 컴파일 실행 파일을 빌드해야 한다






 

인터프리터(Interpreter)언어

-  소스 코드를 한번에 컴파일 하지 않고, 인퍼트리터로 소스코드를 한줄씩 기계로어로 번역하면서 실행(Runtime)

- ex) R, Python, Ruby

 

 

인터프리터(Interpreter)과정

 

장점  단점
-  문법 적 제약이 비교적 적어 작성이 비교적 쉽다
-  컴파일과정 없이 바로 실행하기 때문에 수정, 디버깅에 유리
(즉, 개발속도가 빠르다)
- 각 플랫폼에 지원하는 인터프리터만 있다면 실행 가능하기 때문에 플랫폼에 독립적

- 실행하는 과정에서 소스 코드를 기계어로 번역하는 과정이 포함되어 있으므로 컴파일 언어에 비해 느리다
- 문법적 오류가 있든 없든 일단 실행되기 때문에 디버깅이 비교적 어렵다(실행을 하고 나서야 오류를 알 수 있다) 

Summary

# 컴파일 언어

- 실행 전 소스코드를 컴파일하여 기계어로 변환 후 해당 파일을 실행
- 이미 기계어로 변환된 것을 실행하므로 비교적 빠름
- 문법적 제약이 일반적으로 많음
- 운영체제에 따라 다르게 작업해야 함

 

# 인터프리터(스크립트)언어 

- 코드를 작성함과 동시에 인터프리터가 기계어로 번역하고 실행함
- 실행 과정 상에 번역 과정이 있어 비교적 느림
- 문법적 제약이 일반적으로 적음
- 운영체제를 신경 쓸 필요 없이 한 번만 작성하면 됨

 

 

출처

https://aeroej.tistory.com/138

 https://ikcoo.tistory.com/129

 https://ryusm.tistory.com/105