1.2 C언어 소개    [DOC]    [SMTS]

 C 언어는 1972년 유닉스(UNIX) 라는 OS(Operating System, 운영체제)를 개발하기 위한 목적으로 고안된 프로그램 언어로서 벨 연구소의 Ken Tompson이 개발한 B 언어를 개선한 것이다. 같은 연구소에 근무하던 Dennis Ritchie가 DEC PDP-11 이라는 컴퓨터 시스템에서 실행되는 유닉스 운영체제를 바로 이 C 언어로 작성하였고 유닉스는 지속적으로 발전하여 지금까지도 서버(server)의 운영체제로 널리 쓰이고 있으며 리눅스(Linux)의 모체가 되었다.


그림 1.1.1 C언어의 창시자 古 데니스리치(Dennis Ritchie)


 C 언어는 40년도 더 지난 오늘날까지도 지속적으로 개정되면서 많은 사람들에게 사용되어지고 있을 정도로 인기를 얻었다.  C 언어의 역사나 발전 과정과 같은 세세한 부분은 굳이 소개할 필요가 없다고 생각되어 생략한다.  C 언어의 특징은 다음과 같다.


  • 사용자 중심의 고급 언어이다. 즉, 인간이 읽고 해독하기 용이하다.

  • 그러면서도 하드웨어를 직접 제어할 수 있는 저급 언어의 특징을 갖는다.

  • 문법이 간결하고 키워드가 다른 언어에 비해서 상대적으로 적다.

  • 이식성이 좋다. 즉, 같은 코드로 여러 운영 체제에서 사용 가능하다. (C 언어가 사용되기 시작한 초창기에 이것은 매우 중요한 특성이었다.)

  • 대부분의 경우 매우 효율적이며 고속으로 실행된다.

  • C++ 혹은 JAVA로 건너가기 위한 선행 언어이다.


여기서 저급 언어(low-level language)는 기계가 해독하기 용이하지만 사람이 읽고 해독하는데 매우 어려운 언어를 지칭한다. 대표적인 저급 언어로 기계어(machine language)와 어셈블리어(assembly language)가 있다. 반대로 고급 언어(high-level language)란 인간의 언어와 유사하여 사람이 읽고 해독하기 용이한 프로그래밍 언어라는 의미이며 기계어와 어셈블리어를 제외한 대부분의 프로그래밍 언어가 이 분류에 속한다.


이후에 기술이 발전하여 컴퓨터의 속도가 빨라짐에 따라 소프트웨어의 덩치도 커지게 되었고, C 언어로는 규모가 큰 프로그램을 개발할 때 프로그램의 코드를 관리하는데 어려움을 겪게 되었다. 이러한 점을 개선하기 위해서 C 언어와의 하위 호환성을 유지하면서 객체 지향 특성(object oriented programming) 및 편의 기능들을 추가하여 1983년 즈음에 Bell 연구소의 Bjarne Stroustrup 이 C++ 언어를 개발하였으며 java, javascript, C# 같은 많은 언어들이 C/C++ 의 문법을 기반으로 개발되고 널리 사용되고 있다.


[그림 1.1.2] 가장 많이 사용되는 프로그래밍 언어 (2015년, www.codeeval.com)


 이 그림에서 보듯이 근래에는 C언어가 차지하는 비중은 크지 않으나 마이크로콘트롤러나 DSP를 사용한 임베디드 프로그래밍 분야나 성능이 중요한 시스템의 프로그래밍 분야는 C언어가 아직도 주력으로 사용되고 있다.

Posted by 살레시오
,