∙ 현재의 컴퓨터는 저수준의 언어인 기계어만을 바로 실행할 수 있으므로 고수준의 프로그래밍 언어로 작성된 프로그램은 번역기(translator)를 거쳐야만 실행될 수 있다.
∙ 번역기의 방식으로는 인터프리터(interpreter) 방식, 컴파일러(compiler) 방식, 그리고 이들의 중간 방식의 세 종류로 나눌 수 있다.
∙ 인터프리터 : 주어진 프로그램과 입력 자료를 곧바로 실행시켜 결과를 출력한다.
∙ 인터프리터는 대화형 프로그램에 많이 쓰인다. 초보자라도 프로그램을 개발하기가 쉬우며 개발 기간도 단축된다. 그러나 프로그램의 실행 속도가 느리다는 단점이 있다.
∙ Smalltalk, LISP, Basic이 인터프리터 언어의 예이다.
∙ 컴파일러 : 원시 프로그램을 받아들여 목적 프로그램을 만들어낸다. 이 목적 프로그램은 기계어나 어셈블리 언어로 되어 있으며 기계어 목적 프로그램은 링킹 로더에 의하여 컴퓨터의 메모리에 적재되어 실행된다.
∙ 컴파일러는 최적화 코드를 만들 수 있기 때문에 컴파일러에 의해 만들어진 목적 프로그램은 실행 속도가 빠르다.
∙ 인터프리터 방식과 컴파일러 방식의 중간 형태 : 프로그램을 중간코드로 컴파일한 후 이 중간코드를 인터프리터 방식으로 실행시킨다.
∙ 중간 코드는 단순히 원래의 프로그램에서 불필요한 정보(설명, 공백 등)를 제거하고 명령어의 해독을 간단히 하기 위하여 명령문의 성분을 고정 형식으로 저장해 놓은 형태가 많다.
∙ 중간코드가 가상기계에 대한 기계 코드일 수도 있는데 나중에 이 기계코드는 소프트웨어에 의해 인터프리트된다. Java가 이 방식을 취하고 있다.
참고문헌
프로그래밍언어론 요약 http://cs.knou.ac.kr/~kchung0825/
'B1:기초 Basement' 카테고리의 다른 글
프로그래밍 언어의 역사 (Computer Language History) (4) | 2006.10.15 |
---|---|
프로그래밍 언어의 요건 (0) | 2006.10.15 |
프로그래밍 언어의 전형(Programming Language Paradigm) (0) | 2006.10.12 |
신택스와 시멘틱스(Syntax and Sementics) (0) | 2006.10.12 |
인간과 교육 - 중간고사 기출문제 (0) | 2006.10.12 |