관리 메뉴

nkdk의 세상

C언어는 어떻게 나왔는가? 그 배경~ 본문

My Programing/C/C++/C#/PRO-C

C언어는 어떻게 나왔는가? 그 배경~

nkdk 2008. 3. 11. 19:58
1.C언어 : C언어는 1972년 벨 연구소의 데니스 리치(Dennis Ritchie)에 의해 만들어졌다. 데니스 리치는 UNIX 운영체제의 개발을 맡고 있었는데 운영체제는 그 특성상 하드웨어를 직접 제어할 수 있어야 했다. 또한 당시의 컴퓨터 환경이 지금과는 달라 CPU의 속도나 메모리의 용량이 충분하지 않았기 때문에 프로그램의 크기는 작아야 했고 속도는 빨라야했다.
이런 모든 요구를 만족시킬 수 있는 유일한 언어는 어셈블리밖에 없었다. 그러나 어셈블리는 특정 기계에 종속적이며 이식성이 없기 때문에 여러 플랫폼에 수정없이 사용하는 것이 목적인 UNIX와는 잘 어울리지 않았다. C언어보다 먼저 발표된 포트란이나 베이직같은 고급언어들은 효율이 좋지 못해 대형 프로젝트에 쓰기에는 역시 부적합했다.
그래서 데니스 리치는 기존의 언어를 사용하지 않고 어셈블리의 강력한 기능과 고급언어의 이식성을 동시에 갖춘 새로운 언어를 직접 만들었다. 물론 데니스 리치가 혼자서 C언어를 다 만든 것은 아니며 과거 언어들의 장점을 취합 정리해서 만든 것이다. C언어의 뿌리는 최초의 구조적 언어인 ALGOL이며 데니스 리치는 동료인 켄 톰슨(Ken Thompson)이 만든 B언어를 개량하여 C언어를 만들었다.
 
>> 컴퓨터를 기계어로 만들기 위한 언어 중 하나이며 C를 기반으로 현재 거의 모든언어가 만들어졌다고 해도 과언이 아니다.
그리고 C언어는 외우기만 해서는 되지 않습니다.
수학에서는 문제를 풀기 위해서 공식을 대입합니다.
그와 마찬가지로 기본 틀에 자신이 생각한 것을 올려놓습니다.
책은 그 공식을 어떻게 사용할 것인가에 대해서 적어 놓은 것입니다.
 
 
2. c언어는 무엇을 하기위해 있는건가?
이부분은 솔직히 광범위합니다. 데이터를 관리하는 프로그램, 네트워크 프로그램, 흔히 말하는 게임 프로그램이라던가 간단하게는 메모장 같은 것 만들기 위해 C 언어를 사용합니다. (컴퓨터로 만드는 프로그램은 C로 만든다고 해도 과언은 아님 - 다만 짜기가 힘들뿐이죠.)
 

3. 온라인게임프로그래머가 되기위해선 c언어 같은것을 알아야한다고들엇는데 무엇이가장중요한가 5섯가지만.
모든 프로그램을 짜기 위해서는 C를 기본으로 합니다.(뭐 다른 언어를 해도상관은 없으나 모태는 C라는 것을 잊지 않으면 됩니다.) C를 배우면 다른언어도 C를 배운 시간보다는 좀 더 빠르게 배우실수 있습니다.(개념을 잡는게 문제죠)
뭐 무엇이 중요한가는 끝도 없습니다. 다만 크게 분류하자면
 
1. OS (운영체제), H/W 등 컴퓨터에 관련된 모든 전반적인 지식.. (예시를 들면 cpu가 어떻게 명령을 받아서 연산하는가 이런것)
 
2. 수학
컴퓨터의 기본은 수학입니다. 수학도 많은 종류가 많지만 컴퓨터를 다루기 위해서는 이산수학이 좀 중요하다고 생각합니다.(그렇다고 그냥 수학이 안 중요하다는건 절대 아닙니다.)
 
3. 알고리즘
쉽게 풀어쓰자면 일의 절차(순서)라고 할 수 있군요. 만약에 학교에서 집에 갈때 가는 길이 여러개라면 그중에서 가장 빠른길은 어디인가를 찾아내는 것이라고 할 수 있습니다. 컴퓨터는 0아니면 1(False / True)이기 때문에 인간과 같은 유연한 사고가 전혀 되지 않습니다. 그렇기 때문에 속도라던가 효율성에 있어서 알고리즘을 따지지 않으면 버그가 많이 생기므로 그렇게 되면 사람들이 전혀 찾지 않습니다.
 
4. 영어
컴파일러는 현재 전부 영어로 되어 있으며 보통 문제가 발생하였을 때 원서를 보게 되는데(한글로 안나와 있는 경우도 있습니다.) 그럴때 영어가 필요 합니다.
 
5. 끈기
많은 사람들이 소위 게임 좀 한다고 해서 게임 프로그래머가 되겠다고 하는데, 실력없으면 받아주지도 않습니다.

또한 언어를 배우다가 많은 사람들이 포기를 합니다. 많은 시행착오를 거쳐야 하지만 그 과정이 힘들어서 버티기 힘듭니다.

처음에 100 사람이 시작한다고 하면 거기서 포기하지 않는 사람들이 10 사람이 될까 말까합니다.
 
또한 IT 업계에 가도 밤낮 밤샘에 휴일도 당연히 포기해야되는 것이고, 정말 앉아서 일만하면 인간관계도 다떨어져나가기 좋습니다. (농담삼아서 IT 쪽에서 일을하면 배의 크기가 34는 넘어야 된다고 할 정돕니다.)
 
그냥 호기심에 들어왔다고 생각하신다면 포기하십시오. 정말 이를 악물고 남들보다 더 노력하지 않으면 IT는 살아남을 수 없습니다. 프로그래머가 되겠다고 하면 말립니다. 정말 끈기가 있는가 없는가. 열정이 없으면 이 일을 할 수 없습니다.