본문 바로가기
IT STUDY/C언어

C언어란 무엇인가?

by 건즈앤로즈 2021. 9. 10.
반응형

C언어-섬네일
C언어란?

C언어란?

 C언어는 현재 사용되고 있는 거의 모든 컴퓨터 시스템에서 사용할 수 있는 프로그래밍 언어입니다.

 

 1972년 벨 연구소의 '켄 톰슨'과 '데니스 리치'가 개발한 언어입니다. 굉장히 오래된 언어지만 아직도 배우는 사람이 많고 실제로 많이 사용하고 있습니다.

 

 현재 JAVA, C#, python 등 쉽게 배울수 있는 언어가 많지만 C언어를 배우는 것은 아이러니하게도 오래되었기 때문입니다. 배우기 쉽게 나온 언어들이 C언어 기반으로 발전했기 때문에 C언어를 먼저 배워둔다면 다른 언어를 좀 더 쉽게 습득할 수 있습니다.

 

그리고 가장 큰 이유는 고급언어임에도 불구하고 저급언어의 특징을 갖고 있다는 것입니다. C언어는 어셈블리어 수준으로 하드웨어를 제어할 수 있습니다. 

 

만약 내가 새로운 제품을 만들기 위해 회로설계를 하고 프로그래밍을 한다면 C언어만큼 프로그램의 용량이 적으면서 빠른 속도로 정밀하게 제어하는데 좋은 언어는 없습니다.


C언어의 특징

C언어를 사용하는 가장 큰 이유중 하나가 고급언어임에도 저급 언어의 특징을 갖고 있다고 했는데 그게 무엇일까요?

 

보통 컴퓨터 언어는 저급언어(low-level language)와 고급언어(high-level language)가 있습니다.

  • 저급 언어(low-level language) = 컴퓨터가 이해하기 쉬운 언어
  • 고급언어(high-level language) = 사람이 이해하기 쉬운 언어

 저급언어(low-level language)에는 기계어와 어셈블리어가 있습니다. 두 언어는 실행 속도가 매우 빠르지만 사람이 배우기에는 매우 어렵습니다. 여기서 기계어는 0101 001 0000 0000 0000 0111과 같이 0과 1로만 이루어진 2진수 언어를 얘기합니다. 일반인은 배우기도 힘들뿐더러 가독성도 떨어지고 생산성도 심하게 낮습니다.

 

 그래서 나온 언어가 어셈블리어 입니다. 

 어셈블리어는 이렇게 어려운 기계어와 1:1 대응이 되는 언어입니다. 하지만 아무리 대응이 된다고 해도 디버깅을 하거나 성능을 업그레이드할 때 매우 어려운 것은 마찬가지였습니다. 

 

 그래서 그 단점들을 보완하고자 탄생한게 고급언어인 C언어입니다.

 


고급언어(high-level language)에는 C. C++, JAVA 같은 것들이 있습니다.

 

고급언어는 가독성이 높고 다루기가 간단하다는 장점이 있습니다. 하지만 이러한 고급언어들은 실행되려면 반드시 컴파일러나 인터프리터 등을 이용하여 기계어로 번역되어야 합니다. 이 부분에서 최근에 나온 언어일수록 파일의 크기가 커지고 번역해야 되는 부분이 많아져 처리 속도가 느려지게 됩니다.

 

 하지만 C언어는 저급언어의 특징을 갖고 있기 때문에 위에서 얘기한 것처럼 파일의 크기가 작고, 속도는 빠르며, 정밀한 조작까지 가능하게 됩니다. 

 

 이런점이 지금도 C언어를 사람들이 많이 사용하는 이유입니다.

 


C언어의 장단점

장점

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

단점

  • C언어는 저급 언어의 특징을 가지고 있으므로, JAVA와 같은 다른 고급 언어보다 배우기가 어렵습니다.
  • C언어는 다른 언어와 달리 시스템 자원을 직접 제어할 수 있다는것이 장점이지만 오히려 단점이 될 수도 있습니다.
    이는 프로그래밍하는데 세심한 주의를 기울여야 합니다.
반응형

'IT STUDY > C언어' 카테고리의 다른 글

Visual Studio 2022 한글 설정 방법  (0) 2024.03.24
visual studio 2022 설치 및 기본 설정  (0) 2024.03.23
C언어 시작하기  (0) 2021.09.10

댓글