컴파일언어 & 인터프리터언어

Wonbin Lee·2022년 5월 3일
0

Programing Language

목록 보기
2/2

Compiled Language(컴파일 언어)

컴파일 언어는 원시코드(프로그래머가 작성한 소스코드)를 모두 컴파일러(Compiler)을 통해 기계어로 변환한 후에 기계어 코드로 실행하는 방식의 언어이다.

소스코드를 기계어로 번역하는 빌드 과정에서는 인터프리터 언어에 비해 시간이 소요되지만, 런타임 상황에서는 이미 기계어로 모든 소스코드가 변환되어 있기 때문에 빠르게 실행할 수 있다.

컴파일 언어로는 C, C++, C#, Java, Rust, Go 등이 있다.


Interpreted Language(인터프리터 언어)

인터프리터 언어는 원시코드(프로그래머가 작성한 소스코드)를 기계어로 변환하는 과정없이 한줄 한줄 해석하여 바로 명령어를 실행하는 언어를 말한다.

인터프리터가 직접 한 줄씩 읽고 따로 기계어로 변환하지 않기 때문에 빌드 시간은 없지만, 런타임 상황에서는 한 줄씩 실시간으로 읽어서 실행하기 때문에 컴파일 언어에 비해 속도가 느리다.

대표적인 언어로는 JavaScript, HTML, ActionScript, SQL, Python, Ruby 등이 있다.



차이점 정리


1. 실행 단계의 차이

컴파일 언어는 '컴파일링' 단계가 필요하지만, 인터프리터 언어는 별도의 '컴파일링' 과정이 필요없다.

2. 생산 속도의 차이

컴파일 언어의 경우 컴파일링을 통한 빌드 시간이 필요하기 때문에, 인터프리터 언어보다 생산속도가 느리다.
하지만 인터프리터 언어의 경우 과정이 단순하기 때문에, 생산 속도가 빠르다.

3. 소스코드 작성시 제약사항

컴파일 언어에는 소스 코드 작성을 위한 제약사항이 인터프리터 언어보다 더 많다.
따라서 컴파일 언어는 사용해야 하는 변수의 자료에 대해서 명확하게 알아야 하며 각종 문법에 따른 제약 사항들도 알아야 한다.

4. 디버깅

인터프리터 언어는 소스코드가 실행되기 전까지는 소스 코드의 버그를 인지하는 것이 어렵기 때문에, 컴파일 언어에 비해 오류 인지 시점이 늦다.
또한, 컴파일 언어가 디버깅 작업이 훨씬 수월하다.

5. 실행 속도

생산속도는 인터프리터 언어가 더 좋지만, 컴파일 언어는 런타임 상황에서 빌드를 다 끝내둔 상태이기 때문에 실행 속도는 컴파일 언어가 훨씬 빠르다.
실행 속도는 C, C++ -> Java -> Python 순으로 느려지기 때문에
연산 속도나 실행 속도에 민감한 프로그램은 인터프리터 언어로 개발하지 않는다.

profile
Developer who level up every day ✌️

0개의 댓글