1580, 8/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 : 11036     Date : 2004/07/03 07:14



    
EnserCh 잘부탁드립니당 ^^ 2005/02/04  
1440   I. 리눅스 구조 및 일반 명령어.     괴도js
07/04 12524
1439   2번째C강좌~![9]     괴도js
07/03 11771
  C강좌;;라 할것잇나?[1]     괴도js
07/03 11035
1437   [Bash Shell] 정복하기[1]     괴도js
07/04 9874
1436   [C강좌] C언어의 기본개요     괴도js
07/02 11068
1435   C언어 기본구조[1]     괴도js
07/02 12302
1434   II. 일반명령어2.     괴도js
07/04 10142
1433   커널버전 확인하기ㅋ[1]     괴도js
07/02 8918
1432   ftz 를위한 자잘한 tip을 알려주세요[3]     금빛갑옷
11/14 6564
1431   [자작] 아직은 부족하지만 제가 정리한 텍스트 입니다[8]     김성근
02/06 6678
1430   [펌]우분투(ubuntu) 사상이란?     김병권
02/04 9881
1429   해킹툴 팝니다.^^ 키로그![14]     고슴도치
09/12 8983
1428   해쿨 level2 강의[10]     결빙
07/07 11444
1427   [펌]Ptrace를 이용한 재미는 해킹.[4]     ^^
02/08 12607
1426   Linux 에서 APM(apache+php+mysql) 소스로 설치 하기[5]     포비
10/29 7612
1425   cisco ios 소프트웨어 cli [1] 이글 올려두되나...???     캐럴린
04/27 8876
1424   PHP공부하실분? 구합니다.[1]     카르페이
04/23 7130
1423   같이공부하실분~[1]     카르페이
04/23 8111
1422   레지스트리 핵심 명령어 요약[1]     카르페이
05/08 8749
1421   정보처리기능사 소프트웨어 공학 모음집 입니다.[1]     카르페이
05/08 7794
[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