1580, 3/79 회원가입  로그인  
   괴도js
   C강좌;;라 할것잇나?

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=205 [복사]



1. C언어 소개.

1969년에......, AT&T 연구소의 Ken Thompson은 연구소의 한쪽 구석에 방치되어 있던 작은 컴퓨터를 보고 운영체제 'UNIX'의 개발을 시작했습니다. 이 작업에 가담하고 있었던 Dennis Ritchie 라는 사람이 'C' 라고 하는 언어를 만들었고. 결국 UNIX 는 C 언어로 다시 프로그래밍 되었습니다.

그런데, 왜 이름이 'C' 일까요?

원래 'CPL(Combined Programming Language)' 이라는 언어가 있었는데, 그 언어에서 'BCPL(Basic CPL)' 이라는 언어가 파생되었고, 다시 그 언어에서 파생한 언어를 BCPL의 선두 문자를 따서 'B' 라고 이름을 붙였습니다. C 언어는 다시 그 B 언어에서 파생되었기 때문에 BCPL의 2번째 문자를 따서 (혹은 B의 다음 알파벳을 따서) 'C' 라고 지어졌다고 합니다.

요약하자면 C언어는 Unix 운영체제 하에서 시스템 프로그래밍을 하기 위해 개발된 아주 강력한 기능을 가진 프로그래밍 언어입니다.

C언어는 구조화 프로그래밍을 지향하는 언어이고 정말로 가장 쓸모있는 언어라고 할 수 있습니다. 이유는 C언어에서는 못하는게 없기 때문이죠. 좀 과장된 표현 같기도 하지만 다른 언어들과 비교해 볼때 못하는거란 없습니다. 그리고 C언어로 만든 프로그램의 속도는 어셈블리어 만큼이나 빠른 속도를 내기 때문에 빠른 속도를 요구하는 프로그램에도 적합하죠.

단 게임과 같은 곳에서는 C언어의 속도조차도 느리기 때문에.. 어셈블리가 요구되는 곳이 있지만, 요즘 C언어 컴파일러들은 인라인 어셈블러라는 것을 지원해서 C소스 내에 어셈블리 코드를 추가할수 있습니다. 이런 점으로 볼때 C로는 못하는게 없다고 봐도 되겠죠?

그래도 실감이 나지 않으시면 C언어로 만들어진 대표적인 프로그램을 예로 들어 볼까요?

그런데 그럴려면 한가지 문제가 있네요. 이 문제가 뭐냐 하면.. C언어로 만들어진 유명한 프로그램이 너무나도 많다는 것이죠. 그래도 몇가지 예를 들어 보죠.

우선 OS에서는 Unix의 커널의 일부분을 제외한 모든 부분이 C로 만들어졌습니다.

정말 굉장하죠..?

그리고 Windows 95도 커널의 일부분과 *.VxD만 빼면 모두 C로 만들어졌습니다. 그것두 우리가 잘 알고 있는 Visual C++의 버전 2.1로 만들어졌죠.

또하나 굉장한 사실이 있는데..

Windows NT는 커널 부분까지 C로 만들어졌다는 것이죠.

C언어로 만들어진 프로그램에는 게임도 많은데, 대부분의 게임은 C언어로 만들어졌다고 보면 됩니다.

게임을 시작할때

DOS/4GW Protected Mode Run-time Version 1.97

Copyright (c) Rational Systems Inc. ............

.

.

이런 것을 많이 보셨을 겁니다. 유명한 게임을 시작할땐 다 이게 나오는데, 이게 나오는건 C언어도 만들어진 것 입니다. Watcom C++라는 개발 툴로 만들어진 것이죠.

또 한가지 놀라운 사실이 있는데, C언어 컴파일러도 C언어로 만든다는 것이죠.

이정도면 C언어로 못하는게 없다는 말이 이해가 되시겠죠?

그럼 이제 그 C언어의 세계로 들어가 보도록 하죠^-^ㅋ홧팅~☆


  Hit : 11039     Date : 2004/07/03 07:14



    
EnserCh 잘부탁드립니당 ^^ 2005/02/04  
1540   [[초급/강좌]] 유닉스 주요 명령어[7]     소유
10/09 14281
1539   [[초급/강좌]] 유닉스 기본 정리[8]     소유
10/09 14230
1538     [re] 허접팁] 암호를 바꿔 해킹피해 줄이쟈 ㅋ ^^; 더 좋은방법[9]     xeon400
10/14 9184
1537   콘솔과 엑스윈도에서 마우스 사용하기[1]     소유
10/28 9814
1536   리눅스에서 한국통신 adsl 설정[10]     jgminam
11/06 11267
1535   gdb사용법_링크임다...[3]     esang72
01/10 8671
1534   리모트에서 명령어 실행시키기[1]     xiangyi
02/03 10429
1533   format string을 위한 리턴어드레스 구하기.[2]     ssuckies
02/08 10439
1532   그녀의 Vulnerabilities에 따른 Remote/local one night stand exploit.[2]     ssuckies
03/29 9922
1531   왜 C 이어야 하는가 ?[96]     소유
04/09 23947
1530   BOF 해결 무작정 따라하기 #1[7]     ssuckies
04/12 14113
1529   BOF 해결 무작정 따라하기 #2     ssuckies
04/12 9783
1528   커널버전 확인하기ㅋ[1]     괴도js
07/02 8918
1527   [C강좌] C언어의 기본개요     괴도js
07/02 11069
1526   C언어 기본구조[1]     괴도js
07/02 12304
  C강좌;;라 할것잇나?[1]     괴도js
07/03 11038
1524   2번째C강좌~![9]     괴도js
07/03 11772
1523   I. 리눅스 구조 및 일반 명령어.     괴도js
07/04 12526
1522   II. 일반명령어2.     괴도js
07/04 10146
1521   [Bash Shell] 정복하기[1]     괴도js
07/04 9875
[1][2] 3 [4][5][6][7][8][9][10]..[79]

Copyright 1999-2023 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org & Wowhacker.com