컴파일러(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 |