📌 유래
- C는 UNIX 운영체제의 산물이며, 벨 연구소에서 일하던 켄 톰슨, 데니스 리치 등이 만들었음.
- UNIX는 다른 OS처럼 어셈블리어로 제작됨. 어셈블리어로 제작된 언어들은 주로 디버깅을 하거나 성능 업그레이드시 매우 힘들다는 특징을 갖고 있음. 이러한 단점으로 톰슨은 UNIX 개발을 지속하기 위해 어셈블리어보다 조금 더 고급 언어가 필요하다고 생각해 B언어를 만들었음. (B언어는 60년대 중반에 제작된 BCPL이라는 시스템 프로그래밍 언어 기반 만들어짐)
- B보다 더 발전된 언어 NB(New B)를 만들고, 더한 발전으로 B와 많이 달라진 형태가 되어 C라고 이름 지음.
📌 표준화
- 70년대 내내 발전해옴. (특히 77~79년)
- 80년대가 되자, C 컴파일러는 어느 OS, 컴퓨터든 지원하기 시작함. 특히 제일 발전 속도가 빨랐던 IBM의 PC 플랫폼 분야에서 엄청난 권위를 갖게 됨.
😭 시련
- C 컴파일러를 짜던 대부분의 프로그램은 K&R에 의존하던 이들이었는데, K&R 책에 단점이 존재함.
1. 언어가 제공하는 일부 기능에 대한 설명 구체적❌ ➡ C 컴파일러마다 이 분야에 대한 해석 제멋대로.
2. C, UNIX 특징 정확하게 구분❌
3. C는 책 출판 이후에도 새로운 특징 추가되고, 기존 특징 삭제되는 등 꾸준한 발전이 있었음.
➡ 설명서가 필요하다..!
- 1983년, 미국규격협회(ANSI)를 중심으로 C의 표준화를 위한 작업이 시작, 여러 차례 수정을 거쳐 88년에 완성, 다음 해 12월 ANSI 규격 X3.159-1989로서 미국규격협회의 승인을 받으면서 공식화됨.
- 1990년, 국제표준화기구(ISO)에서 국제 규격 ISO/IEC 9899:1990으로서 승인받음.
📌 C 기반 언어들
- C++ : C의 모든 특징을 갖고 있으나, 클래스와 다른 특징들이 추가되어 객체지향 프로그래밍이 가능함.
- Java : C++ 기반 ➡ C의 여러 특징 공유함.
- C# : (비교적 최근 언어) C++, Java에 영향받음.
- Perl : 본디 비교적 쉬운 프로그래밍 언어였고, 시간이 지나면서 C의 많은 특징을 공유하기 시작함.
✅ C를 배우게 되면 위의 언어들과 같이 C를 기반으로 하는 언어들을 공부할 때 엄청난 통찰력을 갖고 공부할 수 있음.
💡 본 내용은 K.N.King의 C Programming: A Modern Approach 책을 참고하였습니다.
'📚 STUDY > 🔥 C' 카테고리의 다른 글
[2-3] 주석 (0) | 2024.08.22 |
---|---|
[2-2] 간단한 프로그램의 일반적인 구조 (0) | 2024.08.22 |
[2-1] 간단한 프로그램 짜기 (0) | 2024.08.22 |
Q&A (lint에 관하여) (2) | 2024.08.21 |
[1-2] 장점과 단점 (2) | 2024.08.21 |