반응형

인터프리터 vs 컴파일러


일반적으로 인간이 이해하기 쉽게 만들어진 high-level 언어를 사용하여 컴퓨터 프로그래밍을 한다.

주로 영어로 되어있는 문장이나 단어들을 포함한 것을 말하며 Source Code라 불린다. 하지만 컴퓨터는 high-level 언어를 이해하지 못한다.

컴퓨터는 이진수인 0's 과 1's로 구성된 언어, 즉 machine Code 만 인식할 수 있다.

우리는 Source Code를 machine code로 변역해야 하는데 이 과정을 Compiler 와 Interpreter 가 해준다.

즉, 컴파일러와 인터프리터는 high-level 언어를 Machine Code로 변환해주는 소프트웨어 이다. 


인터프리터(Interpreter)

정의) 프로그램을 해석하는 방법 중 하나로, 사람이 이해할 수 있는 고급언어로 작성된 코드를 한 단계씩 해석하여 실행시키는 방법을 말한다.

인터프리터는 Object Code 나 Machine Code로 변환하지 않은 채 즉시 Source Code 안 instructions 을 실행 시킨다.

즉, 인터프리터 언어로 작성된 소프트웨어는 결과물이 없기 때문에 실행할 때마다 번역작업이 필요하다.

인터프리터를 사용하면 원시 프로그램을 명령어 단위로 변환하고 프로그램 전체에 대해 분석하지 않으므로 변환 시간이 짧다.

그러나 프로그램을 실행할 때마다 변환 과정이 필요하고 프로그램을 최적화할 수 없기 때문에 프로그램의 실행속도가 느리다.


컴파일러(Compiler)

정의) 고급언어로 쓰인 프로그램을 그와 의미적으로 동등하며 컴퓨터에서 즉시 실행될 수 있는 형태의 목적 프로그램으로 바꾸어 주는 번역 프로그램.

컴파일러는 전체 프로그램을 가지고 Object Code로 변환한다. Object Code는 Binary Code로 불리우며 linking 후에 Machine에 의해 즉시 실행된다.

컴파일러의 변환은 한 번만 수행되면 Object Code가 만들어 지고, 이 프로그램을 계속 사용할 수 있다. 하지만 변환에 시간이 많이 걸린다는 단점이 있다.

즉, 컴파일러를 사용하면 원시 프로그램을 전체적으로 분석하여 변환하므로 많은 시간이 소요된다.

하지만 변환 과정을 한 번만 거치면 항상 실행 파일을 수행할 수 있고, 또한 프로그램을 최적화 할 수 있기 때문에 프로그램의 실행 속도가 빠르다.


컴파일러 vs 인터프리터


반응형

+ Recent posts