프로그래밍/C2012. 2. 19. 14:28
출처: secure coding in c and c++

C언어의 아버지 데니스 리치는 The Second History of Programming Language 컨퍼런스에서 C언어의 개발을 발표하였고, 1970년 초반  UNIX 오퍼레이팅 시스템에서의 시스템 구현 언어로서의 역활을 하기 위해 만들어 졌다.  C는 typeless 언어 B에서 파생되었으며, B언어 또한 BCPL이라는 언어에서 파생되었다.  BCPL은 1960 년대 마틴 리차드가 설계했으며 1920년 초반 여러 프로젝트에서 사용되었다. B는 type이 없는 C, 혹은 더 정확하게 말하자면, 메모리에 8K 바이트로 압축된 BCPL이라고 할 수 있겠다.


그 후,  1978년에 "K&R"이라고 자주 불리우는 'The C Programming Language'이  출판되었다.  이 시점의 C언어에 있었던 많은 변화들은 interdata 8/32라는 컴퓨터로 코드를 포팅하는 과정에서 생겨났으며 이 당시 C는 여전히 typeless라는 성격을 강하게 지니고 있었다.  


1983년 ANSI는 X3J11위원회를 설립했다. ANSI의 목표[ANSI 89]는 "명확하고, 일관되었으며, 모호하지 않는 C의 스탠다드를 만들어 C언어 환경안에서 사용자 프로그램의 portability 를 지원하고, 일반적인, 기존에 이미 존재하는 C의 정의를 코드화"하는 것이었다.  1989 년 말에 X3J11은 [ANSI 89]라는 리포트를 만들어 냈으며 이는 이후 ISO / IEC 9899-1990로 ISO에 의해 승인되었다.   물론, ANSI 표준의 섹션의 재배치가 있었고 ISO표준에서는 조항이 되었다고 하나 이 둘 사이의 기술적인 차이는 없다.  이 표준은 두 형태로, 일반적으로 C89와 같은, 또는 간혹 C90로 알려져 있다.


이 스탠다드는 우리가 흔히 아는 C89가 되었다.(혹은 승인 기준으로 C90이라고 불리우기도 한다.)  

후일 이 스탠다드의 첫번째 에디션은 수정을 거쳐 AMD1:1995가 되었다.(이 또한 C95라고 알려졌다)

이 또한 계속적인 수정( ISO/IEC 9899 )으로  인해 우리가 흔히 알고 있는 C99가 되었다.

'프로그래밍 > C' 카테고리의 다른 글

exit(1) vs exit(EXIT_FAILURE)  (0) 2012.02.29
file에서 읽어와 strtok을 이용해 struct에 저장하기  (2) 2012.02.28
enum vs #define vs const  (0) 2012.02.05
enum 타입 c vs c++  (0) 2012.02.04
system vs exec  (0) 2012.01.30
Posted by code cat