본문 바로가기
IT/Programming

컴파일러와 인터프리터

by Jany 2009. 3. 17.
반응형
1.차이점

(1)컴파일러 언어와 인터프리터 언어의 구별은 언어 자체에 있는 것이 아니라 그 언어를
구현시키는 방법에 따라서 구분이 된다.
고급 언어를 디자인 할 때 구현 방법을 고려하기는 하지만 컴파일러 언어로서 가정 전형적인
언어인 포트란조차 인터프리터로 구현할 수 있으며, 반대로 인터프리터의 전형적인 언어인 SNOBOL4도
컴파일러 기법으로 구현시킬 수 있다.

(2)실제 입력 프로그램을 처리하는 과정을 살펴보면 컴파일러는 입력 프로그램의 매 입력된 순서대로
정확하게 한 번씩 처리하지만, 인터프리터는 그 입력 프로그램의 순서에 따라 문장들을 처리하기
때문에 순환 부분 등은 계속 반복 처리해야 한다.

(3)컴파일러와 인터프리터는 고급 언어로 된 프로그램을 입력 자료로 읽어 프로그램(후에 하드웨어
인터프리터에 의하여 시행되어야 함)을 출력만 하는데 반하여, 인터프리터는 직접 그 입력 프로그램을
시행시키는 것이다.


2.특징

(1)컴파일러

①정의: 원시 언어로 된 프로그램을 입력으로 읽어들여서 목적 언어로 된 동일한 프로그램을 출력하여
주는 언어처리기, 즉 번역기.

②컴파일러는 기계어로 번역이 쉽게 이루어질 수 있으면서 기억 장소를 많이 요구하지 않고 시행 시간을
중시하는 경우에 사용.

③컴파일러는 고급 언어 프로그램의 각 문장을 적당한 일련의 기계어 명령으로 바꾸어준다. 컴파일러는
프로그램 전부를 실행 전에 한꺼번에 번역한다.

(2)인터프리터

①정의: 고급 언어를 기계어로 하는 컴퓨터를 하드웨어로 구성하는 대신에 이 고급언어 기계를 다른
기계에서 시행되는 소프트웨어로 시뮬레이션하여 구성하는 방법.

②프로그램이 짧고 복잡하지 않고 질문에 응답하는 상응식 프로그램에서 많이 사용.

③사용 융통성을 중시하는 언어에서는 시뮬레이션 기법이 적용된다.

④인터프리터는 프로그램을 한 문장씩 기계어로 번역한다, 이것은 고급 명령어에 대한 해당 기계어 정보를
주는 내장 사전을 이용, 프로그램을 한 줄씩 번역하는 것을 뜻한다. 인터프리터 언어를 사용하면 미숙련
프로그래머가 프로그램을 실행 시간동안 고치고 개선하기가 용이하다.

(3)컴파일러와 인터프리터의 장단점

1)컴파일러의 장점

①컴파일러는 컴파일 하는 과정이 복잡하고 그 시간이 많이 걸리게 되는데 한번 컴파일 하면 그대로 사용이
가능하여 반복하는 경우에 기계코드가 반복을 하기 때문에 처리 시간이 매우 빠르다.

②기억장소에 대해서는 컴파일러는 컴파일 하는 단계별로 주기억장치안에 들어 올 수 있기 때문에 기억장소의
크기는 조정이 될 수 있다.

③전체 실행 시간 면에서 매우 효율적이다.

④컴파일러는 매번 번역할 필요가 없다.

2)컴파일러의 단점

①한 줄의 입력 시 프로그램이 때로는 몇 백 개의 기계어로 번역되기 때문에 그 프로그램은 큰 기억용량을
요구한다. 특히 입출력 명령은 입출력 형식을 위한 코드 외에 기계 상태 파악코드로 인해 큰 기억 장치가 요구된다.

3)인터프리터의 장점

①프로그램이 될 때까지 원시 언어의 형태를 유지하기 때문에 기억 장소는 추가로 필요하지 않음.

4)인터프리터의 단점

①원시프로그램을 직접 실행하기 때문에 이 실행에 필요한 소프트웨어가 항상 기계 안에 상주하면서 원시 프로그램의
명령들을 받아서 처리한다. 그러나 만일 반복을 하게 되면 그때마다 원시 프로그램을 해석하여 처리하기 때문에 많은
시간이 걸리기도 한다.

②인터프리터의 시행 시간은 컴파일러 방법에 비해 비효율적이다.
반응형

'IT > Programming' 카테고리의 다른 글

Axis 웹서비스 등록 및 배포 방법  (0) 2009.03.19
JAVA2WSDL 생성  (0) 2009.03.19
Apache AXIS를 이용한 웹서비스 강좌  (0) 2009.03.16
자바의 형변환  (0) 2009.03.13
Equals() 와 ==  (0) 2009.03.13

댓글