Computer Science
컴파일 언어(Compile Language) VS 인터프리터 언어(Interpreter Language)
yunajoe
2022. 11. 5. 12:07
컴파일(Compile) 언어
- 소스 코드를 기계어로 한 번에 컴파일(Compile time) 한 후에 실행파일 만들고 실행(Runtime)
- ex) C, C++, C#, Java
cf.빌드(build)
- 컴퓨터에서 이해할 수 있는, 즉 실행 가능한 파일로 만드는 과정
- 우리가 만든 소스코드를 '빌드'하면 실행 파일을 얻는다
- 실행파일은 CPU가 읽을 수 있는 이진코드인 기계어(Machine Code)로 이루어져 있다
장점 | 단점 |
- 이미 기계어로 번역된 파일을 컴퓨터가 실행하므로 스크립트 언어에 비해 실생 속도가 빠르다 - 소스코드에 문법적 오류가 있으면 컴파일 에러를 발생시켜 디버깅이 수월(실행전) |
- 규모가 큰 프로그램은 컴파일 시 오래걸린다 - 일반적으로 문법적 제약이 많아 작성이 비교적 어렵다 - 운영체제마다 컴파일을 실행시키는 방식이 다르기 때문에 운영체제마다 다른 컴파일 실행 파일을 빌드해야 한다 |
인터프리터(Interpreter)언어
- 소스 코드를 한번에 컴파일 하지 않고, 인퍼트리터로 소스코드를 한줄씩 기계로어로 번역하면서 실행(Runtime)
- ex) R, Python, Ruby
장점 | 단점 |
- 문법 적 제약이 비교적 적어 작성이 비교적 쉽다 - 컴파일과정 없이 바로 실행하기 때문에 수정, 디버깅에 유리 (즉, 개발속도가 빠르다) - 각 플랫폼에 지원하는 인터프리터만 있다면 실행 가능하기 때문에 플랫폼에 독립적 |
- 실행하는 과정에서 소스 코드를 기계어로 번역하는 과정이 포함되어 있으므로 컴파일 언어에 비해 느리다 - 문법적 오류가 있든 없든 일단 실행되기 때문에 디버깅이 비교적 어렵다(실행을 하고 나서야 오류를 알 수 있다) |
Summary
# 컴파일 언어
- 실행 전 소스코드를 컴파일하여 기계어로 변환 후 해당 파일을 실행
- 이미 기계어로 변환된 것을 실행하므로 비교적 빠름
- 문법적 제약이 일반적으로 많음
- 운영체제에 따라 다르게 작업해야 함
# 인터프리터(스크립트)언어
- 코드를 작성함과 동시에 인터프리터가 기계어로 번역하고 실행함
- 실행 과정 상에 번역 과정이 있어 비교적 느림
- 문법적 제약이 일반적으로 적음
- 운영체제를 신경 쓸 필요 없이 한 번만 작성하면 됨
출처
https://aeroej.tistory.com/138