2014년 3월 11일 화요일

컴파일러 vs 인터프리터



프로그래밍이란 중앙처리장치가 어떤 일을 처리하도록 기술하는것을 말하며, 이렇게 하여 작성된 문서를 프로그램이라 한다.
작성된 프로그램은 여러가지 방식으로 해석하여 실행하게 되는데, 크게보면 두가지 방식으로 요약 된다.

1.  프로그램을 한 블럭(예:한 문장)씩 읽어서 바로 실행하는 방식이 있고,
2. 전체 프로그램을 읽어서, 번역을 한 다음 한꺼번에 빠른게 실행하는 방법이 그것 이다.

일반적으로 첫번째 방법을 인터프리터 방식이라하고 두번째 방법을 컴파일러 방식이라 한다.
인터프리터 방식은 한블럭 단위로 읽어 해석한 다음 처리하므로, 그 결과를 즉시즉시 알 수 있고, 컴파일시간이 필요 없다. 그러나 동일한 프로그램이 반복되어도 매번 번역을 해서 실행하기 때문에 프로그램 전체의 실행 시간은 컴파일러 방식보다 느린 단점을 가지고 있다. 대포젹인 것으로 예전에 많이 사용하던 베이직언어가 대표적인 인터프리트 언어이고, 현재 자바스크립트, 비주얼 베이직 스크립트, php등도 일종의 인터프리트 방식으로 동작한다고 할 수 있다.

이에 비하여 컴파일러 방식은 프로그램 전체를 기계어로 바꾼 다음  실행순서대로 재 배치하여 실행 가능한 파일로 변환한다음 실행하는 방식을 말한다. 스크립트 언어에 비하여 컴파일과 컴파일된 오브젝트 코드를 재배치하는 과정인 링크가 필요하기 때문에 인터프리터 방식에 비해서 준비 시간이 많이 필요하나, 변환된 프로그램인 실행행가능 코드를 실행하는데는 인터프리터방식에 비하여 배우 빠른 특징을 가진다.
c, cpp, c# 등이 이에 해당하는 대표적 언어라 할 수 있다.

댓글 없음:

댓글 쓰기