본문 바로가기
세상의 모든 리뷰

[프로그래밍 언어] 컴파일러 vs 인터프리터

by AKCEO 2024. 11. 14.

 
 

3세대 언어로 절차 중심 언어를 말하며 컴파일러(compiler), 인터프리터(interpreter)가 있습니다.
 
컴파일러는 사람이 판독 가능한 프로그래밍 언어지만 덩치가 크기 때문에 모듈 단위로 쪼개며 이 모듈은 기계가 판독 가능한 2진수 형태로 만들어집니다. 이렇게 컴파일되고 분리된 모듈들이 링크되면 OS상에서 독립적으로 실행 가능한 모듈로 바뀌게 됩니다.  COM, EXE 실행 가능한 파일로 만들어지기 때문에 안의 소스 코드는 오직 만든 사람만이 볼 수 있습니다. 램과 CPU가 용량이 넉넉하면 이 방식이 적합하며,  장점으로는 소스가 오픈이 안되기 때문에 개발자들의 지적재산권을 지킬 수 있습니다.
개발자 입장에서는 실행 가능한 아이콘으로만 만들면 자신만의 노하우가 오픈되지 않기 때문에 고급스러운 언어사용에는 컴파일러 방식을 취하고 있습니다.

 

인터프리터는 초반 PC가 처음 생겼을 때 용량이 적어 많은 양의 데이터를 처리할 수 없는 것처럼 램이 허용하는 범주 안에서 처리하는 것을 말합니다. 사람이 판독 가능한 프로그래밍 언어가 있고, 이 소스 코드는 기계가 판독 가능한 2진수 기계 코드로 바뀐 상태에서 바로 실행하는 것으로 시스템에서 LINE 단위로 한 줄당으로 실행되는 것을 말합니다. 티스토리에서 HTML를 봤을 때처럼 인터프리터의 경우는 소스 코드가 그대로 제공되며, 이 코드가 없으면 실행이 안되기 때문입니다.  이 방식은 예전 초기 방식으로 컴퓨터 발달로 인해 컴파일러가 유행이었다가 최근에 인터프리터가 각광 받는 이유는 네트워크에 접속하는데 서버와 접속하는 기기들의 사양이 다양하다 보니  모든 컴퓨터가 동일하게 구현되기 위해서는 인터프리터 방식이 더 괜찮기 때문입니다. 오픈 소스이다 보니 누구든 이 소스를 가져다 와서 자신이 원하는 대로 변형해서 사용할 수 있다는 장점이 있습니다.
 
각각의 장단점이 뚜렷하기 때문에 인터넷에서는 인터프리터의 방식이 더 잘 어울리며, PC에서는 컴파일러 방식으로 제작되는게 맞습니다.

댓글