C¶
C는 1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 일할 당시 새로 개발된 유닉스 운영 체제에서 사용하기 위해 개발한 프로그래밍 언어이다. 켄 톰슨은 BCPL언어를 필요에 맞추어 개조해서 “B”언어(언어를 개발한 벨 연구소의 B를 따서)라 명명했고, 데니스 리치가 이것을 개선하여 C 언어가 탄생했다.
유닉스 시스템의 바탕 프로그램은 모두 C로 작성되었고, 수많은 운영 체제의 커널 또한 C로 만들어졌다. 오늘날 많이 쓰이는 C++는 C에서 객체 지향형 언어로 발전된 것이다. 또 다른 다양한 최신 언어들도 그 뿌리를 C에 두고 있다.
장단점¶
장점¶
이식성 (= 확장성)
다양한 컴퓨터 (슈퍼 컴퓨터, 가정용 컴퓨터 등)에서 C언어를 지원함
도스에서 만들어진 프로그램도 유닉스나 윈도우에서 사용 가능함
효율성
C는 어셈블리어를 대체하기 위해 만들어진 언어라 한정된 메모리가 내에서 최대한 빨리 작동되어야 했음
소스의 크기가 작음
유연성
C는 스스로의 특징을 발현하는데 아주 적은 제한만을 둬, 다른 언어에선 허용되지 않는 기능이 C 언어에서는 대부분 허용됨
예를 들자면 C는 한 문자가 정수값이나 실수값에 추가될 수 있게 허용함
이러한 유연함은 프로그래밍을 보다 쉽게 만들어주지만 동시에 버그를 발생시키기도 함
단점¶
이해하기 어려움
C 언어는 포인터와 같은 저급 언어의 특징을 가지고 있어 고급 언어 (Python)보다 배우기가 쉽지 않음
C 언어는 의도적으로 프로그램을 만들거나 수정할 때 최대한 간결하게 해서 시간을 최대한 아끼려는 의도로 만들어 져, 이해하기 어려울 수 있음
에러 발생률 ↑
유연하기 때문에 에러가 나기 쉬움
실수로 추가한 세미콜론(;)이 무한 루프를 생성하는 경우를 예로 들 수 있음