sohyeon kim

[SW] comfiler & interpreter 컴파일러와 인터프리터 본문

Software

[SW] comfiler & interpreter 컴파일러와 인터프리터

aotoyae 2024. 1. 1. 23:05
728x90

 

 

: 고수준 프로그래밍 언어를 컴퓨터가 이해할 수 있는 기계어 Machine code로 번역해 줌

: 프로그래밍 언어의 "번역기"

  컴파일러 인터프리터
실행 방식 코드를 컴파일러로 번역한 뒤 사용자의 컴퓨터로
번역된 코드를 보낸다. 그리고 실행
코드를 인터프리터가 깔려 있는 사용자의 컴퓨터를 보내
번역한다. 그리고 실행
개발 편의성 👿 코드를 수정하고 실행하려면 컴파일을 다시 해야 한다.
(실행할 때마다 전체 코드를 읽음)
😇 코드를 수정하고 즉시 실행할 수 있다.
(한 줄씩 바로바로 실행)
실행 속도 😇 빠르다. 👿 느리다. (사용자의 컴퓨터에서 번역을 하니까)
보안 😇 프로그램의 코드가 유출되지 않는다. 👿 프로그램의 코드가 유출될 수 있다. (코드 전체를 보내니까)
파일 용량 👿 프로그램의 실행 파일 전체를 전송해야 하므로,
용량이 크다.
😇 프로그램의 코드만 전송하면 실행이 되므로,
용량이 작다.
프로그래밍 언어 C, C++ 처럼 비교적 저수준에 가까운 언어 Python, Ruby 처럼 비교적 고수준에 가까운 언어

 

보통 고급언어에서 점점 더 저수준 언어로 번역될수록 코드 길이가 훨씬 길어진다.

그래서 전체 프로그램을 머신 코드로 만들어서 전달하는 컴파일러 방식보단

고수준 언어 그 자체로 전달하는 인터프리터 방식의 프로그램 용량이 더 작다!

개발 편의성은 떨어지지만 실행 속도는 빠른 저수준 언어와

개발 편의성이 높지만 실행 속도는 느린 고수준 언어와 비슷하다.

 

 

💡 고수준 언어는 개발 편의성이 생명인데, 컴파일을 거치면 그 장점이 사라진다.

그러니 고수준 언어는 인터프리터 방식을 주로 사용

 

💡 저수준 언어는 개발 과정이 좀 힘들더라도 어떻게든 최고의 성능, 효율, 속도를 만들어내고자 했다.

그런데 인터프리터 방식으로 느린 환경에서 실행된다면, 힘들게 저수준 언어로 개발한 이유가 사라진다.

그러니 저수준에 비교적 가까운 언어들은 컴파일 방식으로 실행되는 경우가 많다!

 

 

 

728x90
반응형