언어/기타

[C] C는 어떤 언어이고 뭘 할 수 있는 언어일까?

by SeHwa posted Jan 26, 2007
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

밑에 글을 몇개 살펴보니 C나C++ 언어가 처음 배울때는


콘솔 환경으로 배우기 때문에 그걸로 뭔 게임을 만드냐 이런 생각을 한다고


적어주셨습니다.


 


조금 보충할 것도 있고 새로 적을 내용도 있고 하니 적어 보겠습니다.


-------------------------------------------------------------------


 


C언어는 가장 현대적인 언어입니다.


왜 그럴까요 ? 다른 C++,JAVA,비주얼베이직,C#,델파이,D,코볼(많이안쓰죠),포트란(안쓰죠거의) 등의


언어의 종류는 수백개입니다. 실제로 모두 문법의 차이도 있고


컴파일 방식에 차이가 있기도 합니다.


 


예로 자바나 C# 등은 컴파일을 하고 나면 운영체제 또는 CPU 간의 호환성을 위하여


실행은 JVM(요즘엔 이름이아마 다르다죠) 이라는 가상 머신으로 실행시키며


JVM 은 자바이고 C# 은 그에 맞는 인터프리터가 존재합니다.


 


그리고 C 나 C++ 언어는 컴파일과 링크 과정을 바로 하며 실행도 바로 시킬수 있습니다.


물론 커널 작성을 할 때 등은 예외가 있습니다. 이진 파일로 작성하죠.


 


이 C언어는 예전 유닉스를 디자인할때 쓰였던 언어로, 벨 연구소의 데니스 리치가


개발한 언어입니다.


유닉스는 같은 벨 연구소의 켄 톰슨이 만들었지만 어셈블리로 작성된 운영체제는 아무래도


코드도 매우 복잡하고 관리하기도 어려워 데니스 리치가 자신이 개발한 C 언어로 다시 개발하게 되고


그래서 나온 것이 현대에도 사용되는 유닉스 운영체제입니다.


 


사실상 지금 나오고 있는 언어들은 대부분 C와 비슷하게, 또는 C 와 똑같으면서도 문법만 다른 언어도


있습니다.


 


그것이 바로 어셈블리로 매우 효율적으로 작성된 언어이면서도 장점이 있으며


언어 자체에 유연성이 있고, 또 유닉스를 디자인했기 때문에 유명해져 호환성도 널리 알려져 있습니다.


 


대표적으로 언어가 표준이 생길정도로 되어 있는 프로그래밍 언어는 별로 많지 않습니다.


그런데 C 는 최초로 ANSI C 표준과 나중에는 ANSI와 ISO 의 ANSI/ISO C 가 나와 지금은 C99 표준이 최신이지요.


 


 


이제 C가 어떻게 나왔는지에 대해서는 그만두고 ㄱ-


 


C는 왜 처음에 콘솔일까요?


기본적으로 윈도나 X-Window 또는 애플의 맥 운영체제 등은 모두 그래픽 모드라는 특징이 있습니다.


윈도 역시 C 언어 또는 C++ 로 만들어졌고 X-Window도 C로 만들어졌습니다.


 


즉 이 C로는 못하는게 없습니다.


 


아마 이런분이 있을것입니다.


'아 난 콘솔에서라도 일단 '게임' 을 한번만들어보고싶다고! 근데 콘솔에선 어차피 아무것도못하잖아!'


라고 하시는분들,


 


제가 약 4~5개월 전에 약간 게임을 만든 적이 있습니다.


물론 C 이며 콘솔입니다.


 


http://cafe.naver.com/cafec/13705


그리고 최근에 만든 건..


http://cafe.naver.com/cafec/17201


 


 


이래도 콘솔에서 게임을 못만들까요?


물론 그래픽은 어쩔 수가 없습니다.


윈도에서 C를 프로그래밍할때 그래픽을 나타내고 싶다면 API 라이브러리를 배워야 합니다.


물론 실제 게임은 API 뿐만아니라 MFC 또는 DirectX 나 OpenGL 같은 그래픽 라이브러리들이


많이 쓰입니다.


 


C는 이 DirectX 와 OpenGL 과 MFC 와 API 이 모든 것을 가능케 한 언어입니다.


실제로 이 라이브러리들은 C로 작성되었고, 예외로 MFC 와 DirectX 나 OpenGL 은 C++ 로 작성되었습니다.


 


C++ 도 C의 상위 개념입니다.


문법에서 추가된 점이 있을 뿐 둘은 어쨌든 기본적으로는 동일한 언어입니다.


 


그럼, 프로그래밍 공부 하시는분들, 열심히 하시기 바랍니다.!


 


----------------------------------------------------------------------


 


 


 


P.S 저는 프로그래밍 하는 사람입니다. 하하;;..