본문 바로가기
카테고리 없음

인터프리터와 프리프로세서의 차이

by nakanara 2007. 6. 1.
반응형
- 인터프리터(Interpreter)


인터프리터는 고급언어로 작성된 원시코드 명령문들을 한번에 한 문장씩 읽어 들여 기계어로 번역하여 실행하는 프로그램이다. 고급언어로 작성된 프로그램을 실행하는 데에는 두 가지 방법이 있으며 하나는 프로그램을 컴파일 시키는 방법이고, 다른 하나의 방법은 작성한 프로그램을 인터프리터에 통과시키는 방법이다.

 인터프리터는 고급언어의 해당명령어를 한 줄씩 읽어 해당 기계어 정보를 주는 내장 사전을 이용하여 중간 형태인 논리적인 코드로 생성한다. 최근 인터프리터의 일종인 자바가상머신은 코드를 해석 후 일부를 기계어로 바꾸어두어 실행 속도의 향상 시키기도 하였다.

 인터프리터 언어는 기계어로 만들어지는 컴파일 과정을 거칠 필요성이 없어서 고급 프로그램을 즉시 실행시킬 수 있다. 이러한 이유 때문에 인터프리터는 종종 프로그램 개발단계에서 사용되고 있으며 그 이유는 프로그래머가 내용을 추가하고 그것을 빠르게 테스트 해 볼 수 있기 때문이다. 이 외에도 인터프리터 프로그래밍은 대화식으로 할 수 있기 때문에, 학생들의 교육용으로 사용되는 경우도 많다. 일반적으로 인터프리터(Interpreter)라는 번역기를 사용하여 프로그램을 처리 하는 경우는 프로그램이 복잡하지 않고 짧으며 질문에 응답하는 상응식(interactive)프로그램에서 많이 사용되고 있으며, 인터프리터는 원시 프로그램을 기계어로 번역하지 않고 바로 처리하도록 되어 있다.

 인터프리터는 실행할 명령어를 기억장소에서 불러서 명령어를 번역 실행하고 다음 명령어를 부르기 위하여 주소를 증가시키는 방법으로 프로그램을 처리한다. 명령어 중 반복 문을 실행하게 되면 그때마다 원시 프로그램을 해석하고 처리를 반복하기 때문에 실행시간이 느려진다. 명령어를 실행하고 주소를 증가 시키는 방식은 어셈블리 언어의 처리 방식과 비슷하다.

 인터프리터는 원시 프로그램을 직접 실행하기 위해서 이 실행에 필요한 소프트웨어(시뮬레이션)가 항상 기계 안에 상주하면서 원시 프로그램의 명령어들을 받아서 처리하게 된다. 이러한 요인 때문에 인터프리터 프로그램 자체도 상당한 기억 공간을 필요로 하기도 한다.

 

-       프리 프로세서(preprocessor)


 
고급언어를 또 다른 고급언어로 번역하는 고급언어 번역기라고 볼 수 있으며, 영어 뜻 그대로 미리 처리하는 것이라는 뜻으로 컴파일 이전에라는 말이 생략 된 것이다. 이 말을 다시 생각하면 컴파일보다 먼저 실행되어 미리 처리하는 것이라는 뜻으로 선행처리기라고도 불린다. 이 프리 프로세서가 가장 먼 저 통일된 언어로 모두 맞추어 놓은 다음 컴파일러로 번역을 하게 되는 것이다.

  3세대 프로그래밍 방식인 구조적 프로그래밍기법에서 도입된 것으로서, 프리 프로세서를 이용하여 더욱 다양한 언어로 각 모듈을 구축할 수 있게 된 것이다. 이 프리 프로세서는 컴파일 된 바이너리 파일을 링크하는 단계가 아닌 컴파일 이전의 텍스트 파일을 처리하여 논리적 오류를 최소화 하고, 프로그래밍의 단순화 및 용이성을 한 단계 높여 준 방법이다.

 프리 프로세서의 대표적인 것으로 C언어에서 “#” 이 들어간 명령어인 #include (파일 대치), #define (문자열의 매크로 정의), #undef (문자열의 매크로 해제)등의 명령어가 있다.

 

-       인터프리터와 프리 프로세서의 차이


 
인터프리터나 프리 프로세서의 역할은 동일한 고급언어를 번역하는 번역기의 일종이다.

 인터프리터는 고급언어의 라인을 읽어 명령어를 해석 후 기계어 정보를 가지고 있는 내장사전을 이용하여 중간 형태인 논리적인 코드를 생성한다. 생성된 논리적인 코드를 플랫폼에 설치 되어있는 시뮬레이션(자바가상머신등)이 논리코드를 해석하여 해석하면서 실행하는 구조이다. 일종의 고급언어를 논리적 언어로 해석하여 시뮬레이션이 이해할 수 있는 언어로 변경하는 역할이다.

 프리 프로세서는 프로그램의 실행까지의 연결은 없으며 고급언어를 통일될 일괄의 형식의 고급언어로 변경해주는 작업을 컴파일 작업 전에(선행처리기) 하는 작업을 한다. 프리 프로세서의 작업은 프로그램 소스의 단순성 및 용이성, 명확성을 높이는 작업이라고 할 수 있겠다.

 인터프리터와 프리 프로세서의 차이점은 인터프리터는 고급언어를 시뮬레이션이 이해 할 수 있는 코드인 논리적 코드로 변경하는 것이고 프리 프로세서는 고급언어를 선행처리 작업을 거쳐 통일화된 고급언어로 변경한다.



네이버 지식 In
엠파스 열린 지식
다음 신 지식
. 참조 받음

반응형