[C언어]1. C언어란?

yejubi1531·2021년 1월 27일
0


TIOBE 프로그래밍 언어 순위
(2021년 1월 27일 기준) 1위 C언어
참고 사이트: [https://www.tiobe.com/tiobe-index//]

What is C?

  • 1972년 AT&T Bell Laboratories(벨 연구소)의 Dennis Ritchie(데니스 리치)가 유닉스 운영체제를 만들기 위해 고안한 범용적 고급 프로그래밍 언어
  • 현재 사용하고 있는 거의 모든 컴퓨터 시스템에서 사용할 수 있는 프로그래밍 언어

프로그래밍 언어란?

컴퓨터의 시스템을 구동시키는 소프트웨어를 작성하기 위한 언어

  • Low level language: 컴퓨터가 이해하기 쉽게 작성된 프로그래밍 언어
    ex) 기계어(machine language), 어셈블리어(assembly language)
    실행 속도가 매우 빠르지만, 사람이 배우기에는 매우 어려워 프로그램의 유지보수가 힘들다.
  • High level language: 사람이 이해하기 쉽게 작성된 프로그래밍 언어
    컴파일러나 인터프리터에 의해 기계가 이해할 수 있는 언어로 번역되어 실행된다.
    low level language보다 상대적으로 실행 속도가 느리지만, 가독성이 높고 다루기 쉽다.
    ex) JAVA, Python 등

=> C언어는 두가지의 특징을 모두 가지고 있는 절차 지향 프로그래밍 언어이다.

💻 C언어의 역사

C언어 이전 유닉스 운영체제는 어셈블리어라는 low level language를 사용했는데 어셈블리어는 특정 하드웨어에 종속적인 언어여서, 이 언어로 작성된 프로그램은 다른 하드웨어로 이식할 수가 없었다.
그래서 하나의 기능을 하는 프로그램을 CPU의 종류만큼 여러번 작성해야하는 불편함이 있어 이식성도 좋고 어셈블리어보다 쉬운 언어가 필요해졌다.

처음에 켄 톰슨은 BCPL 언어를 고쳐서 B언어(Bell 연구소의 첫글자 B를 따서 B언어로 지음)를 개발했는데 후에 데니스 리치가 B언어를 개선하여 C언어가 탄생하였다.

C언어의 특징

C언어는 이후의 프로그래밍 언어에 직간접적으로 많은 영향을 주었는데 C언어를 배우면 다른 언어를 배우기 쉽다.

Windows, Linux, OS X와 iOS, Android, Windows Phone 모바일 운영체제의 핵심인 커널은 C 언어로 만들어져 있다.(약간의 어셈블리가 포함됨)
즉, 운영체제의 모든 기능을 이용할 수 있는 건 C언어
다른 언어들은 모두 C언어의 기능(라이브러리)을 가져다 쓰는 구조

  • C언어로 작성된 프로그램은 다양한 하드웨어로의 이식성이 좋다.
  • C언어는 절차 지향 프로그래밍 언어로, 코드가 복잡하지 않아 상대적으로 유지보수가 쉽다.
  • C언어는 코드가 간결하며, 완성된 프로그램의 크기가 작고 실행 속도가 빠르다.
  • 구조체, 공용체 등 복합 데이터 타입을 지원한다.
  • 포인터를 활용한 메모리, 배열 접근을 허용한다.
  • 표준 외부 라이브러리 사용한다.

=> 메모리와 하드웨어를 직접 제어하는데 C언어를 따라갈 언어가 없다.

🤔 C언어, 어디에 쓰일까?

Systems Programming

  • 운영체제(ex, 리눅스) 개발
  • 마이크로 컨트롤러 개발
  • 임베디드 프로세서 개발
  • 디지털 신호처리 프로세서 개발
profile
노력하는 중

0개의 댓글