본문 바로가기

교육/[Codeit] 컴퓨터 개론

컴파일러와 인터프리터 요약

반응형

 

컴파일러와 인터프리터의 장단점을 한번 비교해 봅시다.

컴파일러인터프리터

개발 편의성 코드를 수정하고 실행하려면 컴파일을 다시 해야 한다. 👎 코드를 수정하고 즉시 실행할 수 있다. 👍
실행 속도 빠르다. 👍 느리다. 👎
보안 프로그램의 코드가 유출되지 않는다. 👍 프로그램의 코드가 유출될 수 있다. 👎
파일 용량 프로그램의 실행 파일 전체를 전송해야 하므로, 용량이 크다. 👎 프로그램의 코드만 전송하면 실행이 되므로, 용량이 작다. 👍
프로그래밍 언어 C, C++처럼 비교적 저수준에 가까운 언어 Python, Ruby처럼 비교적 고수준에 가까운 언어

프로그래밍 언어의 종류에 따른 실행 방식 차이

컴파일러 방식과 인터프리터 방식의 장단점을 한번 살펴 봅시다.

컴파일러는 “개발 편의성은 떨어지지만, 실행 속도는 빠르다.” 인터프리터는 “개발 편의성이 높지만, 실행 속도는 느리다.”

그런데 어디서 들어본 이야기인 것 같지 않나요? 사실 코드의 실행 방식은, 프로그래밍 언어의 특징과도 연결이 되는데요.

기억을 되살려 봅시다. 저수준 언어는 개발 편의성은 떨어지지만 실행 속도는 빨랐고요. 고수준 언어는 개발 편의성이 높지만, 실행 속도는 느렸습니다.

하나의 장점을 살리기 위해, 다른 것들을 일부러 포기한 거죠.

그런데 동일한 특징이 컴파일러와 인터프리터에서도 각각 나타나고 있는 거죠. 그래서 언어 마다 주로 쓰이는 실행 방식이 있습니다.

고수준 언어는 개발 편의성이 생명인 언어인데, 컴파일 과정을 매번 거쳐야 한다면, 그 장점을 다 잃어버리고 말겠죠? 그래서 파이썬, 루비같은 고수준 언어는 인터프리터 방식을 주로 사용합니다.

반면, 저수준 언어는 개발 과정이 좀 힘들더라도, 어떻게든 최고의 성능, 효율, 속도를 만들어내고자 했습니다. 그런데 그게 인터프리터 방식으로 실행되어서, 느린 환경에서 실행된다면, 힘들여서 저수준 언어로 개발한 이유가 다 사라지겠죠? 그래서 C, C++ 같은 저수준에 비교적 가까운 언어들은 컴파일 방식으로 실행되는 경우가 많습니다.

728x90
반응형