C 언어(0) - Introduction

kimseyoung·2022년 12월 13일
0

C, C++

목록 보기
1/6

C언어의 역사

C는 1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 일할 당시 새로 개발된 유닉스 운영 체제에서 사용하기 위해 개발한 프로그래밍 언어이다.

켄 톰슨은 BCPL언어를 필요에 맞추어 개조해서 "B"언어(언어를 개발한 벨 연구소의 B를 따서..)라 명명했고, 데니스 리치가 이것을 개선하여 C 언어가 탄생했다.

유닉스 시스템의 바탕 프로그램은 모두 C로 작성되었고, 수많은 운영 체제의 커널 또한 C로 만들어졌다. 오늘날 많이 쓰이는 C++는 C의 객체 지향형 언어이다.

C언어 이전에 유닉스 운영체제는 어셈블리어라는 저급 언어를 사용했다.
하지만 어셈블리어는 특정 하드웨어에 종속적인 언어라서, 이 언어로 작성된 프로그램은 다른 하드웨어로 이식할 수 없었다.

즉, 하나의 기능을 하는 프로그램을 CPU의 종류만큼 여러 번 작성해야만 했고, 이러한 단점을 극복하기위해 C가 개발되었다고 할 수 있다.

C언어의 장점

C언어가 가지는 대표적 장점은 다음과 같다.

  1. C언어로 작성된 프로그램은 다양한 하드웨어로의 이식성이 좋다.
  2. C언어는 절차 지향 프로그래밍 언어로, 코드가 복잡하지 않아 상대적으로 유지보수가 쉽다.
  3. C언어는 저급 언어의 특징을 가지고 있어서, 어셈블리어 수준으로 하드웨어를 제어할 수 있다.
  4. C언어는 코드가 간결하여, 완성된 프로그램의 크기가 작고 실행 속도가 빠르다.

이 중, 세번째 장점은 어셈블리어 수준으로 하드웨어를 제어 할 수 있는 언어는 C의 객체 지향형 언어인 C++을 제외하고는 최근들어 등장한 Rust뿐이다. 즉, 임베디드 시스템이나 입출력 장치를 직접 제어해야 한다면, C언어는 거의 필수라고 할 수 있다. 또한, 직접 메모리에 접근할 수 있고, 프로그램의 크기가 작은것도, 자원이 적은 임베디드 시스템에 적합하다.

C언어의 단점

C언어가 가지는 대표적 단점은 다음과 같다.

  1. C언어는 저급 언어의 특징 때문에, 자바나 파이썬 같은 다른 고급 언어보다 배우기가 어렵다. (가독성이 매우 떨어진다.)
  2. C언어는 다른 언어와는 달리 시스템 자원을 직접 제어할 수 있으므로, 프로그래밍하는데 세심한 주의를 기울여야 한다.
profile
Back-end Developer, DevOps Engineer

0개의 댓글