다음의 그림을 통해 다시 한번 프로그램의 컴파일과정을 이해해 보겠습니다.
<프로그램 컴파일 과정>
기억나실 듯 합니다.
우선 프로그램 소스코드를 작성하고(물론 개발도구 프로그램과, 프로그래밍 언어를 가지고...)나서,
컴파일을 하게 되면 실행가능한 프로그램이 생성이 된다고 말씀드렸습니다.
이러한 프로그램을 목적 프로그램이라고도 하지만, 컴퓨터 하드웨어(CPU)가 알아 들을 수 기계어로 번역되었다는 의미에서 바이너리 파일이라고도 합니다.
여기서 눈여겨 보셔야 할 부분이 푸른 색 화살표로 표시된, 번역과 실행의 부분입니다.
컴파일은 번역과 실행이 따로 되기 때문입니다.
자 그럼,
오늘 처음 배우게 되는 인터프리팅 언어에 대해 알아보도록 하겠습니다.
역시 그림을 참조해보겠습니다.
위의 컴파일 과정과 그림 상의 차이를 알아보시겠죠?
일단, 인터프리팅은 프로그램 소스코드가 목적프로그램, 또는 바이너리 파일로 변환되는 번역과정이 일어나지 않는다는 것입니다.
프로그램 소스코드가 바로 한줄한줄 실행되어 기계어로 미리 번역되어서 저장(바이너리 파일)되는 절차가 생략되어 있는 것입니다.
컴파일이든, 인터프리팅이든 둘 다 모두 번역(기계어로 번역)이라는 단계는 무조건 거쳐야만 합니다.
그래야 컴퓨터 하드웨어가 무슨 말인지 알아들을 수 있기 때문입니다.
프로그래밍 언어를 분류하는 또다른(이전에는 주된 적용분야에 따라 구분했던 것 기억나시죠?) 중요한 기준 중의 하나가 바로 이 번역방식에 따른 구분입니다.
현재 현장에서 사용하는 프로그래밍 언어는 대부분 컴파일 언어들이기는 하지만, 인터프리팅 언어 또한 만만치 않게 사용되고 있으며,
웹 프로그래밍 분야의 경우는 컴파일 언어보다는 오히려 인터프리팅 언어가 더욱 활발하게 쓰이는 경우가 많이 있습니다.
우선, 컴파일 언어의 대표적인 예는, 그 동안 우리가 자주 들어왔던
C, C++, JAVA, C# 등등이 있습니다.
그리고, 인터프리팅 언어는 주로 스크립트(Script)와 마크업(Mark-Up)이라고 불리우는 언어들을 지칭하는 것으로
자바스크립트(Javascript), 액션스크립트(ActionScript), VB스크립트, SQL, HTML 등등이 있습니다.
일반적으로 컴파일 언어가 구현할 수 있는 프로그램의 기능이 월등이 많다고 보시면 될것 같습니다.
대부분의 인터프리팅 언어들은 특수한 목적을 위해 태어난 언어들이기 때문에,
사용하는 용도가 무척 제한적입니다.
자바스크립트 언어의 예를 들면, 우리가 거의 매일 보다시피 하는 홈페이지를 좀더 풍부한 기능으로 만들어 주는 역할을 주로 하는데 사용됩니다.
물론 극히 일부분 다른 용도로 사용되고는 있지만, 원래 태생 자체가 홈페이지 제작용이라는 한정적이고, 특수한 용도로 태어난 언어이기 때문입니다.
(JAVA 언어와, Javascript가 이름이 비슷하다고 혼동해서는 안됩니다. 이 둘은 각각 다른 기업에서 만든 언어일 뿐만 아니라, 그 용도와 탄생배경까지 모두 전혀다른 별개의 언어들입니다.)
또한 인터프리팅 언어의 또 다른 한 종류인 SQL 언어의 경우 관계형 데이터베이스 시스템(Relational DataBase System)이라는 대용량 데이터 저장 시스템에 저장되어있는 데이터를 검색하고, 관리하기 위해 사용되는 프로그래밍 언어로서 오로지 단 한가지의 목적을 위해 만들어낸 프로그래밍 언어입니다.
이렇듯이, 인터프리팅 언어들의 특징은 매우 한정적이고, 제한적인 사용용도를 가지고 있기 때문에
한때는 컴파일 언어만을 사용하여 프로그램을 개발하는 프로그래머들에게 조금은 무시당하는 경향이 있는 언어들이었으나,
현재에는 필요에 따라 반드시 익혀야 하는 언어임에는 분명한 듯 합니다.
(현재 기업에서 사용하는 업무용 프로그램 수요의 약 80% 정도가 관계형 데이터베이스 시스템을 사용하여 제작되고 있습니다. 당연히 SQL 언어는 어떠한 프로그래머이든 필수적으로 알아야 하는 인터프리팅 언어가 되어가고 있습니다)
번역되는 과정에 프로그래머가 할일은 없다!
지금까지 프로그래밍 언어를 기계어로 번역하는 과정에 따라 컴파일 언어와 인터프리팅 언어로 구별하여 설명을 드렸습니다.
복잡하게 설명은 드렸지만, 이는 사실 프로그래머인 여러분들이 신경을 쓸일은 거의 없을 것 같습니다.
왜냐하면,
컴파일 방식 언어이든, 인터프리팅 방식 언어이든 번역은 여러분들의 몫이 아니라, 별도의 컴파일러, 인터프리터라는 이름의 프로그램이 알아서 처리해주기 때문입니다.
프로그래머가 할일은 결국 여러분이 작성하게 될 프로그래밍 언어를 익히는 것과,
소스코드를 작성할 개발도구 프로그램의 사용법을 익히는 것.. 그리고,
컴파일러와 인터프리터 프로그램을 개발도구가 설치된 컴퓨터에 같이 설치해주는 것 정도입니다.
사실, 프로그램 소스코드 작성은 여러분들의 윈도우 운영체제에 있는 '메모장 프로그램'으로도 가능합니다.
어떤 측면에서는 메모장 프로그램은 매우 효율적인 개발도구 프로그램일 수 있기 때문입니다.
그런 의미에서, 지금부터 정말 간단한 프로그램을 하나 작성해볼까요?
다음의 순서를 따라 한번 해보세요.
1. 메모장 프로그램을 실행한다.
2. 다음의 프로그램을 직접 메모장에 적는다.(영문 대소문자 틀리지 않게 잘 써주세요~)
<script language="javascript">
document.write("이순신 장군은 13척의 배로, 일본적선 333척을 물리쳤다")
</script>
3. 모두 작성했으면, 바탕화면이든 어떤 폴더이든 저장한다.
저장할 때의 파일이름은 MyFirstProgram.html로 한다.
저장할 때 주의사항은 파일의 확장자가 .txt라고 되어서는 안된다는 것이다. 반드시 주의!
4. 저장한 폴더에 가서 MyFirstProgram.html 파일을 더블클릭해서 실행한다.
5. 결과를 확인한다.
혹시 위의 파일을 더블클릭 했을때 인터넷 익스플로러가 실행되면서 "... 사용자의 컴퓨터에 액세스 할 수 있는 스크립트나 ActiveX... "라는 메시지가 화면 상단에 나타나면 이를 클릭해서 [차단된 컨텐츠를 허용]을 다시 클릭해주면 됩니다.
그러면 인터넷 익스플로러에 '이순신 장군은 13척의 배로, 일본적선 333척을 물리쳤다'라는 글자가 선명하게 출력되는 홈페이지를 하나 보여줄 것입니다.
아래의 화면입니다.
자, 어떻습니다.
여러분이 작성했던 프로그래밍 코드는 어딜가고, 화면에 글자만 출력되고 있는 것이 확인되시죠?
바로 여러분의 소스코드는 해석과 번역과정을 거쳐 사라져 버리고 프로그래머인 여러분들이 내린 명령(document.write라는 명령)에 따라 화면에 글자를 찍어주는 행동을 취해서 보여준 것입니다.
여러분이 작성한 소스코드는 자바스크립트 언어이며, 개발도구 프로그램은 메모장이었습니다.
그럼 인터프리터 프로그램은 어디있냐구요?
^^
자바스크립트 언어를 번역하는데 필요한 인터프리터는 별도로 설치해줄 필요없이 인터넷 익스플로러에 내장되어 있기 때문에 여러분은 전혀 신경을 쓸 필요가 없었습니다.
이렇게 프로그래밍이라는 것이 어찌보면, 원리만 깨달을 수 있다면 어떤 언어이든 그리 어렵지 않게 접근할 수 있다는 것입니다.
[출처] [09] 언어의 구조 - 컴파일과 인터프리팅 (정보기술연대 유현사) |작성자 브라이언
'분야 > 프로그래밍 일반' 카테고리의 다른 글
객체지향 프로그래밍 추천책 (0) | 2015.07.03 |
---|---|
객체지향은 세계관이다. (0) | 2013.12.13 |
프로그래밍과 언어, 개발자로 사는 일 (0) | 2013.10.23 |
개발 언어를 선택하는 5가지 기준 (0) | 2013.03.19 |