왼쪽으 켄 톰슨과 오른쪽의 데니스 리치
초기 C 언어의 개발은 1969년 부터 1973년 사이 AT&T 벨 연구소에서 이루어졌다. 보통 C 언어가 컴퓨터의 앞글자 'C' 를 따서 지었다고 생각하겠지만 실제로는 C 언어의 개발자 켄 톰슨 ( Ken Thompson) 에 따르면, C 언어가 원래 B 언어라는 또 다른 컴퓨터 언어의 발전된 버전이였기에 C 언어라 지었던 것이다.
초기의 PDP - 11 버전의 유닉스 시스템은 어셈블리 언어로 개발되었다. 1973년에 구조체 기능이 추가된 C 언어는 굉장히 강력한 언어가 되어서 어셈블리로 쓰여졌던 유닉스 운영체제의 커널을 C 언어로 다시쓰게 되었다. 이는 어셈블리 언어가 아닌 다른 언어로 쓰여진 최초의 언어 중 하나가 되었다. ( 그 외에도 어셈블리 언어로 쓰여지지 않는 운영체제의 커널은 멀틱스(Multics) 시스템의 PL/I 언어와, Burroughs B5000 는 ALGOL 이다. )
1978년에 브라이언 커닝핸(Brian Kernighan) 과 데니스 리치(Dennis Ritchie) 는 'The C Programming Language ( C 프로그래밍 언어) ' 라는 책의 첫 출판을 하였다. 이 책은 흔히 프로그래머들 사이에서 "K&R" 이라고 불리어 졌으며 이 때문에 책에서 나온 C 언어는 흔히 "K&R C" 라고 불리어졌다. 두번째 에디션의 'The C Programming Language' 는 책 표지에 ANSI C 마크가 부착되어있다.
K&R 에 나와있는 몇 가지 언어의 중요한 기능들을 살펴보자면 :
- 표준 입출력 (I/O) 라이브러리
- long int 데이터 형식
- unsigned int 데이터 형식
- 복합 할당 연산자 (compound assignment operators) =op 는 i=-10 과 같이 애매모호한 의미를 띄는 것을 막기 위해 op= 로 바뀌었다. 왜냐하면 i=-10 은 원래 i =- 10 으로 번역되었으나 실제로 프로그래머가 의미하는 것은 i = -10 일 수 도 있기 때문이다.
1970 ~ 1980 년 동안 여러 버전의 C 는 수 많은 메인프레임 컴퓨터, 미니 컴퓨터, IBM PC 를 포함한 마이크로 컴퓨터 등에 이식되면서 이에 대한 인기가 치솟았다. 1983년에는 미국 표준 협회 (American National Standards Institute , ANSI ) 는 위원회를 조직해서 X3J11 를 C 의 표준으로 결정하였다. 1989 년에는 표준이 ANSI X3 으로 승인되었다. 이 때 이 버전의 C 언어를 ANSI C 또는 표준 C 라 부르며 가끔씩 C89 라 부르기도 한다.
1990 년에 ANSI C 표준은 국제 표준화 기구 (International Organization for Standardization, ISO ) 에 의해 흔히 C90 이라 불리던 ISO/IEC 9899:1990 으로 받아들여 졌다. 그 후로 C 표준화 작업이 계속되었다.
C 표준화 작업의 한 목표는 K&R C 의 비공식적인 기능들을 포함하는 C 를 마드는 것이다. 표준화 위원회는 이전에 포함되지 않았던 함수 프로토 타입 (function prototypes) , void 포인터, 국제 문자표에 대한 지원과 전처리기 등에 대한 사항을 추가시켰다
C89 는 현재의 여러 C 컴파일러에서도 지원이 되었고 이는 현재의 대부분의 C 코드가 이 언어를 바탕으로 쓰여졌다. 표준 C 로 쓰여진 소프트웨어와 적당한 하드웨어만 있으면 현재의 어떤 플랫폼 에서도 상당히 잘 작동할 수 있다.
참고로 C Programming Language 2nd 책은 여기 e-book 으로 올렸으니 참고하기 바란다.
참고자료 : http://en.wikipedia.org/wiki/C_(programming_language)
'Computer' 카테고리의 다른 글
윈도우 7, 드디어 베일을 벗다. (4) | 2008.10.30 |
---|---|
지뢰찾기 (Minesweeper) 와 그 이야기 (78) | 2008.09.21 |
인터넷 상에서 컴파일(Compile) 한다고? (4) | 2008.09.04 |
위키피디아 (Wikipedia) V.S 놀 (Knol) (2) | 2008.08.06 |
세계 각국의 라디오 및 TV 방송 공짜로 보기! (1) | 2008.05.23 |