인터프리터
위키백과 ― 우리 모두의 백과사전.
인터프리터(interpreter)는 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다. 원시 코드를 기계어로 번역하는 컴파일러와 대비된다. 인터프리터는 다음의 과정 가운데 적어도 한 가지 기능을 가진 프로그램이다.
- 소스 코드를 직접 실행한다.
- 소스 코드를 효율적인 다른 중간 코드로 변환하고, 변환한 것을 바로 실행한다
- 인터프리터 시스템의 일부인 컴파일러가 만든, 미리 컴파일된 저장 코드의 실행을 호출한다.
인터프리터는 고급언어로 작성된 원시코드 명령어들을 한번에 한 줄씩 읽어들여서 실행하는 프로그램이다. 고급언어로 작성된 프로그램들을 실행하는 데에는 두 가지 방법이 있다. 가장 일반적인 방법은 프로그램을 컴파일 하는 것이고, 다른 하나는 프로그램을 인터프리터에 통과시키는 방법이다. 인터프리터는 고급 명령어들을 중간 형태로 번역한 다음, 그것을 실행한다. 이와는 대조적으로, 컴파일러는 고급 명령어들을 직접 기계어로 번역한다.
컴파일된 프로그램들은 일반적으로 인터프리터를 이용해 실행시키는 것보다 더 빠르게 실행된다. 그러나 인터프리터의 장점은 기계어 명령어들이 만들어지는 컴파일 단계를 거칠 필요가 없다는데 있다. 컴파일 과정은 만약 원시 프로그램의 크기가 크다면, 상당한 시간이 걸릴 수 있다. 이와는 달리 인터프리터는 고급 프로그램을 즉시 실행시킬 수 있다. 이런 이유 때문에, 인터프리터는 종종 프로그램의 개발단계에서 사용되는데, 그것은 프로그래머가 한번에 적은 량의 내용을 추가하고 그것을 빠르게 테스트 해보길 원하기 때문이다. 이 외에도 인터프리터를 이용하면 프로그래밍을 대화식으로 할 수 있기 때문에, 학생들의 교육용으로 사용되는 경우도 많다.
인터프리터와 컴파일러는 둘다, 대부분의 고급언어에 적용이 가능하지만, BASIC 이나 LISP과 같은 일부 언어들은 특별히 인터프리터에 의해서만 실행되도록 설계되었다. 그 외에도, 포스트스크립과 같은 페이지 기술 언어 들도 인터프리터를 사용한다. 모든 포스트스크립 프린터는 포스트스크립 명령문을 실행할 수 있도록 인터프리터가 내장되어 있다.
|
|
|
|---|---|
| 수학적 기초 | 수리논리학 · 집합론 · 정수론 · 그래프 이론 · 형 이론 · 범주론 · 수치 해석 |
| 계산 이론 | 오토마타 이론 · 계산 가능성 이론 · 계산 복잡도 이론 · 양자 계산 이론 |
| 알고리즘 & 자료 구조 | 알고리즘 · 자료 구조 · 계산 기하학 |
| 프로그래밍 언어 & 컴파일러 | 구문 분석 · 컴파일러 · 인터프리터 · 프로그래밍 언어 · 구조적 프로그래밍 · 객체 지향 프로그래밍 |
| 병행,병렬 & 분산 시스템 | 병행 컴퓨팅 · 분산 컴퓨팅 · 병렬 컴퓨팅 · 그리드 컴퓨팅 · 클라우드 컴퓨팅 · IaaS · PaaS · SaaS |
| 소프트웨어 공학 | 요구 분석 · 소프트웨어 설계 · 컴퓨터 프로그래밍 · 형식수법 · 소프트웨어 테스트 · 소프트웨어 개발 |
| 시스템 아키텍처 | 컴퓨터 아키텍처 · 마이크로아키텍처 · 운영 체계 |
| 통신 & 네트워크 | 컴퓨터 오디오 · 라우팅 · 네트워크 토플로지 · 암호학 |
| 데이터베이스 | 데이터 마이닝 · RDBMS · SQL |
| 인공 지능 | 자동추론 · 전산언어학 · 컴퓨터 비전 · 진화 연산 · 기계 학습 · 자연 언어 처리 · 로봇학 |
| 컴퓨터 그래픽 | 시각화 · 영상 처리 |
| 인간과 컴퓨터 상호 작용 | Computer accessibility · 사용자 인터페이스 · 착용 컴퓨터 · 유비쿼터스 컴퓨팅 · 가상현실 |
| 계산과학 | 인공생명 · 생물정보학 · 인지과학 · 계산화학 · 계산론적 신경과학 · 계산물리학 · 수치 해석 · Symbolic mathematics |
| 정보보호 | 암호학 · 물리보안 · 소프트웨어 보안 · 인터넷 보안 · 네트워크 보안 · 해킹 · 크래킹 |

