본문/내용
Compiler
Compiler는 고수준 언어를 저수준 언어로 번역하는 기법으로서, 만약 m 언어를 인식하는 컴퓨터 CPm에 s 언어를 t 언어로 번역하는 컴파일러 Cm이 있으면, s 언어 프로그램을 일괄적으로 t 언어 프로그램 Pt로 번역한 후에 t 언어를 인식하는 컴퓨터 CPt에 적재(load)하여 실행시키는 번역기법이다. 따라서 여러 기계어가 압축된 고수준 명령문을 기계어 형태로 모두 풀어서 바꾼 후에 이를 메모리에 저장하기 때문에 메모리의 사용이 크지만 한번 번역된 기계어를 반복해서 번역할 필요가 없기 때문에 실행시간이 빠르다.
그림 Compilation 기법
일반적으로 CPm과 Pt에서 m과 t가 동일하지만 목적에 따라서 다를 수도 있다. 이 경우에 컴파일러 Cm을 cross-compiler라 한다.
Assembler
기계어는 모든 기기마다 다를 수 있기 때문에 어셈블러는 특정한 컴퓨터의 어셈블리 언어에 대한 번역기이다. 어셈블리언어는 기계어를 기호화 한 형태이기 때문에 기계어로 쉽게 전환이 가능하다.
일반 컴파일러는 어셈블리 언어를 목적어로 생성하고 어셈블러가 어셈블리 언어를 기계어 코드로 전환함으로서 고수준언어의 호환성을 향상시킬 수 있다.
Interpreter
고수준 언어로 작성된 원시 프로그램을 컴퓨터 주메모리에 적재해 두고, 그중 한 명령문씩 꺼내어 이를 인식할 수 있는 해석기에서 중간어로 전환하여 곧바로 실행시키는 기법을 interpreter 방법이라 하는데, 이 방법은 통역에 해당된다. 인터프리터의 기능은 아래 그림과 같이 원시코드가 일단 모두 기계어로 번역된 후에 실행되는 것이 아니라 실행시점에 명령문 단위로 목적코드가 생성되는 데에 있다.