C

C는 1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 일할 당시 새로 개발된 유닉스 운영 체제에서 사용하기 위해 개발한 프로그래밍 언어이다. 켄 톰슨은 BCPL언어를 필요에 맞추어 개조해서 “B”언어(언어를 개발한 벨 연구소의 B를 따서)라 명명했고, 데니스 리치가 이것을 개선하여 C 언어가 탄생했다.

유닉스 시스템의 바탕 프로그램은 모두 C로 작성되었고, 수많은 운영 체제의 커널 또한 C로 만들어졌다. 오늘날 많이 쓰이는 C++는 C에서 객체 지향형 언어로 발전된 것이다. 또 다른 다양한 최신 언어들도 그 뿌리를 C에 두고 있다.

장단점

장점

  • 이식성 (= 확장성)

    • 다양한 컴퓨터 (슈퍼 컴퓨터, 가정용 컴퓨터 등)에서 C언어를 지원함

    • 도스에서 만들어진 프로그램도 유닉스나 윈도우에서 사용 가능함

  • 효율성

    • C는 어셈블리어를 대체하기 위해 만들어진 언어라 한정된 메모리가 내에서 최대한 빨리 작동되어야 했음

    • 소스의 크기가 작음

  • 유연성

    • C는 스스로의 특징을 발현하는데 아주 적은 제한만을 둬, 다른 언어에선 허용되지 않는 기능이 C 언어에서는 대부분 허용됨

    • 예를 들자면 C는 한 문자가 정수값이나 실수값에 추가될 수 있게 허용함

    • 이러한 유연함은 프로그래밍을 보다 쉽게 만들어주지만 동시에 버그를 발생시키기도 함

단점

  • 이해하기 어려움

    • C 언어는 포인터와 같은 저급 언어의 특징을 가지고 있어 고급 언어 (Python)보다 배우기가 쉽지 않음

    • C 언어는 의도적으로 프로그램을 만들거나 수정할 때 최대한 간결하게 해서 시간을 최대한 아끼려는 의도로 만들어 져, 이해하기 어려울 수 있음

  • 에러 발생률 ↑

    • 유연하기 때문에 에러가 나기 쉬움

    • 실수로 추가한 세미콜론(;)이 무한 루프를 생성하는 경우를 예로 들 수 있음