노무현 대통령 배너

Double-J's World

blog logo image

Double-J's World » Programming/C / C++

[C 박살내기] #1_프로그래밍이란..

Double-J | 2008. 1. 4. 16:41

아직 공학도 3학년을 마친 내가 이런글을 포스팅하는 자체가

어쩌면 건방질지(?)모르는 이야기이다. 내가 그나마 아는 언어도..

C/C++ 을 조금 배웠을뿐인데..(학부에서 자바와 MFC도 배우긴했지만..사알~짝~ㅎ)

그래도 내 머리속에 있는 지식을 정리하는 목적이기도하고..

이제 프로그래밍쪽이나 컴퓨터공학이나 컴퓨터 과학 쪽으로 관심있는 분들에게

조금이나마 도움이 됬으면 하고 용기를 내어 포스팅~!


일단 프로그램언어의 종류는 꽤 많다. C, C++, java, php, asp, fortran...등등..

이중에서 내가 그나마 아는 분야는 C / C++ 쪽이다. java가 대세이긴 한데...

아직도 공부하면서 고민되는 부분이긴하다...실제로 주변에 많은 사람들도

JAVA와 DB(Data Base) 중심으로 공부를 한다...(아직도 난 패닉상태..ㅎ;)

아무튼 Web 기반 이든 아니든.. 리눅스기반이든..윈도우기반이든...그 환경을 막론하고

프로그래밍에서 말하는 Language 는 컴퓨터와 '대화' 하기 위해 만들어 진것이다.

아주아주 처음에는 이진수로 프로그래밍을 하였다... 컴퓨터가 이해할수있는 '기계어'이기 때문이다.

이 기계어는 이진수로 이루어져있다.. 그런데 이렇게 사람이 이진수로만 작업하다보니...

힘들기도하고 작업시간도 오래걸려서 이것을 점점 발전시켜서 자연어에 가까운 현재의

Language가 된것이다. 집중만 잘해서 관련도서를 잘 본다면 금새 이해가 가능하다.

(Programming Language 는 분류상 '인공어'이다. 하지만 소스 안에서
 사람이 이해할수 있는 단어들이 있어서 단지 자연어에 가깝다고 한것이다.
 이 포스팅을 읽는 분들이 Programming Language 는 자연어다! 라는
 오해를 하지 않았으면 한다.ㅎ;
 )

아무튼... 컴퓨터가 일련의 작업을 하기위해 명령을 해야 하는데

이것을 바로 프로그래밍 언어(Language)로 하는것이다. 프로그래머들이 이를 이용해

좀더 쉽게  Application을 만들어 놓은것을 일반사용자 (end-user)가 또 편하게 사용하는것이다.

단적인 예로 영어 밖에 모르는 미국사람에게 자신의 뜻을 이해 시키려면 영어로 얘기해야 할 것이다.

그 외국인에게 한국말로 "몇살이냐고!!" 를 외쳐봐도 못알아듣는다. ㅡ,.ㅡ

컴퓨터도 마찬가지이다.  아무리 영어로, 한국어로, 일본어..등등으로...

"컴퓨터 화면에 내가 원하는 문자를 출력해줘!!" 라고 외쳐봐도 컴퓨터는 묵묵부답이다.

물론 그런기능을 가진 Application 이 있다면 얘기가 다르겠지만 그런 end-user 의 입장은 논외로

하겠다. 컴퓨터가 이해할수있는 언어로 얘기를 해야 이놈이 알아 먹는다...ㅎ;

다음은 C 로 구성된 어느책에서나 볼수있는 출력문이다.

사용자 삽입 이미지

이 소스를 간단히 설명하면

컴퓨터 모니터에 'Hello World!' 를 출력해줘! 

라는 의미이다. 다음은 실행결과~!

사용자 삽입 이미지
이렇게 결과가 나오는것이다.

그런데....아까전엔 분명히 컴퓨터가 이해할수 있는언어는 이진수로 이루어진

'기계어' 뿐이라고 했다. 그런데 위의 소스에는 영어로되어있다.ㅡ.ㅡ;

거짓말을 한 것이 아니라. 저 과정은 '컴파일' 이라는 과정을 거쳐서 실행되기에

실행이 가능한것이다... 이에관한것은 나~중에~ 다시 포스팅을 하도록하겠다.

오늘은 여기까지~~*


(go to top)