1. 컴퓨터와 프로그래밍

프로그램이 없으면 컴퓨터는 단순히 큰 계산기에 불과하고, 여러분이 생각하는 컴퓨터의 능력을 생각할 수도 없다.

 

 

프로그램의 존재로 컴퓨터는 목적 달성에 도움을 주는 도구가 될 수 있다.

 


 

프로그램(program)은 사람이 용도에 따라서 작성한다.

                                                      


프로그램을 작성하는 사람을
프로그래머(programmer)라고 한다.


프로그래머 관점에서 볼 때, 컴퓨터는
데이터를 처리해서 의미 있는 정보를 제공하는 대상이다.

데이터 그 자체로는 사람에게 유용한 정보가 되지 못한다.

가령, 회사 사장이 회사의 월급 수준을 파악하려고 한다. 모든 회사원의 월급 명세서 리스트는 사장에게 도움이 되지 않을 것이다. 대신, 사장은 월급 명세서 리스트를 토대로, 부서별 총 월급 액수, 전년도 대비 월급 향상 정도, 동종의 다른 회사와 비교했을 때 회사원의 평균 월급 액수 등의 유용한 정보를 필요로 할 것이다.

컴퓨터는 월급 명세서의 리스트를 입력받고, 이 데이터를 처리하여 필요한 정보를 출력한다.


프로그램은 컴퓨터가 데이터를 처리하는 과정을 기술한다.

 

 
2. 프로그램

 

프로그램이란 컴퓨터가 무엇을 할 것인가를 지시하는 상세한 명령어들의 리스트이다.


가령, 자동차에 대해서 전혀 개념을 갖지 않은 원시인에게 차를 시동하는 방법을 알려준다고 생각해보자.
여러분이 다음과 같이 지시한다면 원시인의 반응이 어떨까?

       
" 이 키를 가지고, 저 차에 가서 시동시켜라."

원시인은 키를 들고서 어찌할 바를 모를 것이다. 가령, 차 문을 여는 방법도 모를 것이다. 

즉, 위의 지시사항은 상세하지 못하다. 

따라서 원시인 이해할 수 있는 정도로 상세하게 지시하는 것이 필요하다.

다음은 원시인에게 차를 시동하는 방법을 알려주는 상세한 지시사항들의 리스트이다.

 

 

a. 키를 손에 쥐어라
b. 차의 왼쪽 문에 다가가라.
c. 그 문 아래 동전만한 크기의 구멍을 찾아라.
d. 키를 그 구멍에 꽂아라.
e. 클릭 소리가 들릴때까지, 키를 오른쪽으로 돌려라.
f. 키를 반대방향으로 돌려서 빼라.
g. 문을 열고 들어가서, 운전대 앞에 앉아라.
h. 차 문을 닫아라.
I. 핸들의 오른쪽 편에 키를 꽂을 수 있는 구멍을 찾아라.
j. 키를 그 구멍에 꽂아라.
k. 브레이크 페달을 밟아라.
l. 사이드 브레이크를 풀어라.
m. 차에서 부르릉 소리가 들릴 때까지 키를 오른쪽으로 돌려라.


위와 같은 상세한 지시사항에 따르면 , 차에 대해서 전혀 모른 원시인도 차를 시동 걸 수 있을 것이다.

컴퓨터는 원시인과 같다. 따라서 여러분은 컴퓨터에게 일을 시킬 때, 그 처리 사항을 상세하게 기술하는 것이 필요하다.

즉, 컴퓨터가 처리해야 할 사항에 대한 상세한 리스트가 프로그램인 것이다.

컴퓨터와 프로그램의 관계를 다시 한번 정리해보자.

컴퓨터는 여러분의 지시를 기다리며, 지시가 주어지면 그대로 수행한다.
여러분의 지시 사항들의 리스트를 프로그램이라 한다.


3. 프로그래밍 언어

 
컴퓨터가 일을 수행하려면, 여러분의 지시사항을 이해할 수 있어야 한다.
그러나 인간과 컴퓨터가 이해할 수 있는 언어가 다르다.
컴퓨터는 단지 0과 1의 값만을 갖는 스위치들로만 구성되어 있고, 따라서 컴퓨터의 언어는 0과 1로만 표현된다.
이러한 컴퓨터 언어를 인간이 이해하기에는 어렵다.

인간이 이해하기 쉬운 언어고급 언어라 하고, 컴퓨터가 이해하기 쉬운 언어저급 언어라 한다.

인간의 언어는 애매모호한 점이 많아서, 컴퓨터에게 지시할 사항이 정확히 기술 안될 수 있다

.

가령, 다음과 같은 문장을 컴퓨터는 어떻게 이해할 것인가?
        
           
" Fruit flies like an orange. "

인간이 컴퓨터에게 일을 정확하게 지시하는 것이 필요하다. 모호성이 많은 인간 언어로 지시사항을 기술하기에는 부적합하다. 따라서 프로그램을 기술하기 위해서 인간의 언어와 유사하면서도 모호성을 제거한 새로운 형식 언어가 필요하다. 이러한 형식 언어를 프로그래밍 언어라고 한다.

프로그래밍 언어(programming language)는 모호성을 제거하기 위해서 엄격한 구문을 가지며, 인간이 프로그램을 기술하는데 사용되는 언어이다.

 

 

4. 프로그래밍 언어


프로그래밍 언어는컴퓨터가 할 일을 정확히 기술한다. 이 프로그래밍 언어로 작성된 프로그램은 인간이 쉽게 이해할 수 있지만, 컴퓨터는 이해하지 못한다. 컴퓨터는 단지 0, 1로 구성된 스트림만을 이해할 뿐이다.

따라서 프로그램을 컴퓨터가 이해할 수 있는 언어로 변환하는 것이 필요하다. 이러한 변환은 언어 번역기에 의해서 수행된다.

언어 번역기(language translator)는 인간이 작성한 프로그램을 입력받아서, 컴퓨터가 이해할 수 있는 언어로 변환하는 일을 수행하는 또 다른 프로그램이다.

흔히 컴퓨터가 이해할 수 있는 형태로 변환된 프로그램을 기계 코드(machine code)라 한다.

본 강의에서는 프로그래밍 언어로 C 언어를 사용한다.
따라서 C 언어를 사용하여 프로그램을 작성하고, C 언어 번역기를 사용하여 작성된 프로그램을 기계 코드로 변환한다.
C 언어 번역기를 C 컴파일러라고 한다. C 컴파일러는 이미 언어 개발자나 여러 업체에 의해서 개발되어 있다.

 

 

top으로... 다음페이지로.. home으로..