본문 바로가기

임베디드(embedded)/BSP(Board Support Package) 학습

컴파일러(Compiler)와 인터프리터(Interperter)

컴파일러(Compiler)란 고급 언어로 작성된 프로그램을 컴퓨터에서 즉시 실행될 수 있는 형태의 목적 프로그램으로 바꾸어주는 번역 프로그램입니다. 목적 프로그램이란 프로세서(Processor)가 한 번에 한 명령씩 처리하거나 또는 실행 시킬 수 있는 기계 코드입니다.

컴파일(Compile) 과정 내에도 컴파일(Compile)과 컴파일러(Compiler)가 존재합니다. 이는 하드웨어에 종속적인 코드인 어셈블리어로 변환해주는 역할을 하는데, 전처리(Preprocessor), 컴파일(Compile), 어셈블러(Assembler), 링크(Link) 과정을 묶어서 컴파일(Compile)’ 이라고 통칭하고, 이러한 번역을 해주는 프로그램을 컴파일러(Complier)’ 라고 통칭할 수 있습니다.

 

컴파일러(Complier)와 조금 다른 개념으로 인터프리터(Interpreter)가 있습니다.

 

-      인터프리터(Interperter) : 고급 언어로 작성된 프로그램의 문장들을 한 번에 한 줄씩 읽어 들여서 실행하는 프로그램이다. 프로그램 문장들이 입력되면 인터프리터는 문장들의 기능을 정의하고 그 기능대로 수행된다.

 

  -      컴파일러(Compiler) : 고급 언어로 작성된 프로그램을 컴퓨터에서 수행될 수 있는 기계어로 변환시켜 목적 프로그램으로 번역해주는 프로그램이다.

 

 

컴파일러(Compiler)

인터프리터(Interpreter)

장점

한 번 컴파일 후에는 빠른 시간 내에 전체 실행이 가능하다

번역 과정이 비교적 간단하고 대화형 언어에 편리하다

단점

프로그램의 일부를 수정하는 경우에도 전체 프로그램을 다시 컴파일을 해야 한다.

 

번역 과정이 번거롭고 오래 걸린다.

실행할 때마다 매번 기계어로 바꾸는 과정을 다시 수행해야 하므로 항상 인터프리터가 필요하다.

 

CPU 사용 시간 낭비

차이점

고급 언어를 직접 기계어로 번역

 

디스크에 저장

 

원시 프로그램의 수정 없이 계속 반복 수행하는 시스템에 효율적

고급 언어를 중간 형태로 번역 후, 그것을 실행 및 반복

 

대화식 프로그래밍에 적합

 

대게 캐시 메모리 식으로 임시 저장

종류

C, C++, FORTRAN

BASIC, Prolog, APL


'임베디드(embedded) > BSP(Board Support Package) 학습' 카테고리의 다른 글

툴체인(Toolchain)이란?  (0) 2015.01.15
컴파일(Compile)  (0) 2015.01.14
Linux bsp에 대해서  (0) 2015.01.10
BSP(Board Support Package)란?  (1) 2015.01.10
리눅스(Linux)란?  (0) 2015.01.10