본문 바로가기

About C Language

1. C언어는 프로그래밍 언어다. 


프로그래밍 언어란 사람이 컴퓨터와의 대화를 위한 대화수단의 한 종류다.


그러나 사람이 컴퓨터와 직접 대화할 수는 없다.  컴퓨터는 사람의 언어를 이해할 수 없고, 사람 또한 컴퓨터의 언어(*기계어)를 이해할 수 없기 때문이다. 따라서 한국인이 일본인과 대화하려면 통역사가 필요하듯이, 컴퓨터와 사람 간에도 통역 장치가 필요했다.

이 때 통역 장치의 역할을 하는 것이 컴파일러(compiler)다. 

그러나 컴파일러 역시 자연어를 알지 못한다. 그래서 사람이 알아듣기 쉬우면서 컴파일러도 이해할 수 있는 언어, 프로그래밍 언어가 만들어졌다.




여기서 알아야 할 것은 두 가지다.


i. 프로그래밍 언어란 무엇인가?

-> 사람과 컴파일러 모두 이해할 수 있는 언어. C언어는 프로그래밍 언어의 한 종류.


ii. 컴파일러의 역할은 무엇인가?

-> 프로그래밍 언어를 컴퓨터가 이해할 수 있는 기계어로 번역하는데, 이 작업을 컴파일(compile)이라 한다.


*기계어: 컴퓨터가 이해할 수 있는, 0과 1로 구성된 언어.





2. C언어의 역사


간략하게 소개하면 다음과 같다.


1971년 경에 UNIX(운영체제의 일종) 개발을 위해 데니스 리치(Dennis Ritchie)와

켄 톰슨(Ken Thompson)이 설계한 **고급 언어다.

물론 C언어 이전에도 많은 프로그래밍 언어가 있었는데, C언어라는 이름이 붙은 이유가

여기에 있다.

C언어가 만들어지기 바로 전에 만들어진 언어가 B언어였다. B언어 다음에 만들어졌다는 이유로 C언어라는 이름이 붙은 것이다.


아무튼 UNIX는 ***어셈블리어라는 ****저급 언어로 만들어졌기 때문에

하드웨어에 대한 의존도가 높았다(이를 '이식성이 낮다'고 표현한다).

이는 어셈블리어가 CPU의 종류에 따라 조금씩 달라지기 때문이다.

또한 어셈블리어는 저급 언어기 때문에 사람이 활용하기에 어려움이 있었다.


이러한 문제를 해결하기 위해서는 다음의 세 가지 조건을 만족하는 언어가 필요했다.


저급 언어의 특징을 가진다.

이식성이 좋다.

사람이 활용하기 쉽다.


C언어는 이 세 가지 조건을 모두 만족했다.

그 결과 UNIX의 90% 이상이 C언어로 개발되었고, C언어의 인기도 높아졌다.

 


**고급 언어(high-level language): 사람이 이해하기 쉽게 작성된 프로그래밍 언어.

                                            기계어보다 자연어에 가까운 프로그래밍 언어를 말한다.

                                            예로는 C, C++, Java, PHP, Python, Ruby 등이 있다.

***어셈블리어(assembly language): 기계어와 일대일 대응이 되는 저급 언어.

                                              CPU의 종류에 따라 사용하는 기계어가 달라지므로

                                              기계어에 대응되지는 어셈블리어도 달라진다.

****저급 언어(low-level language): 컴퓨터가 이해하기 쉽게 작성된 프로그래밍 언어.

                                             일반적으로 기계어와 어셈블리어를 말한다.





3. 왜 C언어를 배워야하는가?


i. C언어는 절차 지향적 언어다.

객체 지향 언어라도 기본적으로는 절차에 따라 명령들을 수행한다.

따라서 절차 지향적 언어인 C언어를 공부함으로써 명령 수행 흐름을 파악하는 것에 익숙해질

필요가 있다.


ii. 많은 프로그래밍 언어가 C-Family에 속한다.

C-Family란 C언어의 문법을 기반으로 만들어진 언어들을 말한다.

C-Family에 속하는 주요 언어를 나열하면 다음과 같다.


Java, PHP, Python, C++, Go, Objective-C, Perl, Swift


이들은 각각 게임 개발, 웹, 안드로이드 등 여러 분야에 쓰이는 언어들이다.

따라서 C언어를 잘 공부해두면 다른 언어들을 배울 때 조금 더 수월해질 수 있다.





4. C 프로그램은 어떻게 완성되는가?


                     



위의 그림은 프로그램이 만들어지는 과정을 흐름도로 나타낸 것이다.


링크는 컴파일 과정에서 함께 진행되는 경우가 일반적이기 때문에

[ 작성 ] - [ 컴파일 ] - [ 링크 ]의 3단계가 아닌 [ 작성 ] - [ 컴파일 ]의 2단계라 말하기도 한다.





'Programming > C' 카테고리의 다른 글

입력과 출력  (0) 2019.03.02
연산자  (0) 2019.03.01
변수와 자료형  (0) 2019.02.26
C 프로그램의 기본 구조  (1) 2019.02.24
Visual Studio 2017 설치  (0) 2019.02.24