C언어의 역사
C언어는 1972년 벨 연구소의 데니스 리치에 의해 만들어졌다. (만 알면 된다.)
C언어의 장점
C언어는 절차지향적 특성을 지녀서 익숙해지는데 오랜 시간이 걸리지 않는다.
- 정해진 순서에 따라 작동하기 때문에 실행흐름을 파악하기 쉽다.
이식성이 좋다.
- CPU의 종류에 상관없이 실행이 가능하고, 대부분의 플랫폼에서 C언어를 사용할 수 있으므로 재컴파일만 하면 타 운영체제에서도 사용이 가능하다.
어셈블리 수준의 하드웨어 제어가 가능하다.
- 운영체제 개발을 목적으로 만든 언어이므로 저수준 프로그래밍이 가능하다.
대중적이다.
- 그만큼 자료가 많고, 최신 기술을 습득하기에도 유리하다. 사용빈도가 높고 실무에서 바로 쓰일 수 있는 언어이므로 기본 개발 언어라고 할 수 있다.
컴파일
프로그램을 짠다는 것은 해당 언어의 문법에 맞게 명령어를 입력하는 것이다. 이렇게 언어의 문법에 맞게 명령어를 작성한 것을 소스 파일이라고 한다. 하지만 소스는 고급언어이기 때문에 컴퓨터는 이해를 할 수 없다. 따라서 우리는 컴파일이라는 과정을 통해서 소스파일을 컴퓨터가 이해할 수 있는 이진수로 되어있는 기계어로 번역을 해야 한다. 컴파일을 하기 위해 컴파일러는 소스파일에 작성된 고급언어를 해석해서 기계어 코드로 바꾸고 목적파일을 생성한다. 즉 컴파일은 소스파일을 목적파일로 바꾸는 과정이다.
하지만 목적파일만 가지고는 컴퓨터에서 실행이 불가능하다. 컴파일된 목적파일은 컴퓨터에 깔려 있는 운영체제가 이해할 수 있는 코드로 변환되는 과정을 거쳐야 한다. 이 과정을 링크라고 한다. 링커는 목적파일을 운영체에의 요건에 맞도록 형태를 조금씩 바꾸고 코드를 뜯어고친다. 소스 파일은 컴파일러에 의해 컴파일이 되어 목적파일이 되며, 목적파일은 링커에 의해 운영체제에 맞게 수정되어서 실행파일이 되는 것이다.