2015년 4월 17일 금요일

C/C++언어의 간락한 개요

프로그램(program)이란 인간이 작성하고 기계(주로 컴퓨터와 같은 디지털 시스템)가 해독하여 실행할 수 있는 문서이다. 프로그램을 작성하는 문법을 정한 규약을 프로그래밍 언어(programming language)라고 한다. 여기서 소개할 C 언어와 C++ 도 바로 프로그래밍 언어이다.

 C 언어는 1972년 유닉스(UNIX) 라는 OS(Operating System, 운영체제)를 개발하기 위한 목적으로 고안된 프로그램 언어이다. 이것은 Ken Tompson이 개발한 B 언어를 개선한 것이며 Dennis Ritchie가 DEC PDP-11 이라는 컴퓨터 시스템에서 실행되는 유닉스(UNIX)운영체제를 작성하기 위하여 개발된 언어이다.

 이후에는 컴퓨터 하드웨어의 발전과 함께 C++, JAVA, Python, .NET계열의 언어 등 매우 다양한 프로그래밍 언어가 개발되어 사용되었으며, 현대의 복잡한 시스템의 프로그래밍 언어로서 C 언어가 주력으로 사용되지는 않지만 아직까지도 그 위상은 상당하다.

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

 C언어의 역사나 발전 과정과 같은 세세한 부분은 굳이 소개할 필요가 없다고 생각되어 생략한다.  C 언어의 특징은 다음과 같다.

  • 문법이 간결하고 키워드가 다른 언어에 비해서 상대적으로 적다.
  • 이식성이 좋다. 즉, 같은 코드로 여러 운영 체제에서 컴파일/실행할 수 있다. C언어가 사용되기 시작한 초창기에 이것은 매우 중요한 특성이었다.
  • 대부분의 경우 매우 효율적이며 고속으로 실행된다.
  • C++ 혹은 JAVA로 건너가기 위한 선행 언어이다.

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

Bjarne Stroustrup, Creator and Developer of C++ programming language
C++ 언어를 개발한 Bjarne Stroustrup

 이 객체 지향 프로그래밍 방법론은 다른 현대적인 프로그래밍 언어들에 많은 기여를 하였다. 1991년에는 Guido B.A.가 python의 초기 버전을 발표하였으며, 1995년도에는 C++의 영향을 받은 JAVA라는 언어가 Sum Microsystem 사의 James Gosling 에 의해서 만들어졌다. 또한 2000년에는 Microsoft 가 C++과 JAVA의 장점을 취한 C#이라는 언어를 만들어 ,NET framework의 핵심 언어가 되었다. 이외에도 PHP, Javascrip 등 웹프로그래밍 언어들도 C/C++의 영향을 받아서 개발되었다.

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

 위 그림에서 보듯이 오래된 역사에도 불구하고 C/C++은 현재까지도 중요한 비중을 차지하고 있다. 또한 다른 언어들이 C/C++언어를 기반으로 해서 설계되었으므로 C/C++언어를 익혀 놓으면 다른 언어로 건너갈 때 훨씬 용이하다.

 더우기 마이크로콘트롤러(microcontroller)나 DSP(digital signal processor)의 프로그래밍에서는 C/C++언어가 아직도 주력으로 사용되고 있다. 특히 아두이노(arduino)와 같은 인기있는 오픈 하드웨어 플랫폼도 C++언어를 사용한다.


c{c++},n{c0001}

댓글 없음:

댓글 쓰기