대학생이 되면서 공대생으로서 C언어를 배우게 되었다. OT시간이 지나고 나서 첫번째 시간에 C언어를 배우게 되었는데 벌써부터 중간고사 시험문제를 알려주셨다. 그 내용은 다음에 적힌 내용 중에 출제 된다고 하셨다.
C언어는 간결한 언어이다. C언어에는 작업하는데 꼭 필요한 기능만이 들어 있고 모든 표기법이 아주 간결하게 되어 있어 컴퓨터가 인식하기에도 좋고, 명령어를 작성하는데도 간단하다. 이점은 공부를 하면서 느낄 수 있을 것이다. 간결성은 C언어의 핵심적인 특징 중 하나이다.
C언어는 효율적인 언어이다. 효율적이란 C로 작성된 프로그램이 용량이 작으며 실행 속도가 빠르고 효과적으로 메모리를 사용한다는 것을 의미한다. C언어는 거의 어셈블리 언어 수준의 효율성을 가진다. 이것은 상업용 프로그램을 작성할 때도 큰 장점이 된다.
C언어는 낮은 수준의 프로그래밍도 가능하고 높은 수준의 프로그래밍도 가능하다. C언어는 OS를 만들었던 언어이니 만큼, 어셈블리 언어 만큼의 구체적인 하드웨어 제어가 가능하고 말할 수 있다. 실제로 스마트폰, 태블릿, TV 등의 다양한 전자 기기 안에 들어가는 임베디드 프로그램은 거의 대부분 C언어로 개발되고 있다. 예를 들면 안드로이드 폰의 운영체제는 리눅스로서 C언어로 작성되어 있다. 예전에는 어셈블리 언어로 작업을 하였지만 어셈블리 언어는 사용하는 CPU에 따라서 프로그램을 변경시켜야 되는 치명적인 약점이 있어 C언어를 사용하게 되었다. 따라서 C언어로 임베디드 프로그램을 작성하게 되면 유지 관리가 쉬워진다. 또 포인터, 비트 단위의 조작으로 다양한 하드웨어 장비를 꼼꼼하게 관리할 수 있다. 반면에 C언어는 모듈 단위의 프로그램 작성을 도와주고 분할 컴파일도 가능하기 때문에 높은 수준에서의 프로그램 작성도 가능한 언어이다. 하향식 설계, 구조화 프로그래밍, 모듈화 설계 등의 소프트웨어 공학의 다양한 수법들을 적용할 수 있다.
C언어는 이식성이 뛰어나다. 이식성이란 한번 만들어진 프로그램을 다른 CPU를 가지는 하드웨어로 쉽게 이식할 수 있다는 뜻이다. 많은 종류의 CPU에 대하여 C 컴파일러가 개발되어 있기 때문에 C 프로그램은 상대적으로 이식성이 좋다. 즉 PC에서 개발된 프로그램도 컴파일만 다시 하면 슈퍼컴퓨터에서도 수행시킬 수 있다.
C언어에는 장점 이외에 단점도 있는데 전문가가 아닌 초보자가 배우기가 좀 어렵다는 것이다. C언어는 교육을 위하여 쉽게 만들어 놓은 언어가 아니라 산업 현장에서 사용하기 위해 만들어진 언어이므로 이해하기 어려울 수도 있다. 또한 항상 모든 자유에는 책임이 따르듯이 하드웨어를 다루기 위하여 꼭 필요한 요소인 포인터 등을 잘못 사용하는 경우가 많다.
1980년대부터 C언어가 널리 사용되면서 대다수의 상업적인 프로그램들이 C언어로 만들어졌다. 그러나 1990년대로 오면서 소프트웨어를 만드는 새로운 방법론인 객체지향이 새롭게 등장하면서 많은 상업적인 회사들이 C에서 C++로 전환하였다. C++언어는 C언어를 그대로 유지하면서 객체지향적인 특징들을 추가하여 만들어진 언어이다. 따라서 C++는 흔히 C언어의 상위집합이라고도 불린다. C에서 지원되는 것들은 모두 C++에서도 지원이 된다. 따라서 C를 배우면 C++의 많은 부분들을 알게 되기 때문에 기초적인 C언어를 배워야한다.
'공부' 카테고리의 다른 글
수의 표현 및 진법 변환, 명령어 (0) | 2017.03.18 |
---|---|
컴퓨터의 개념 (0) | 2017.03.18 |
프로그램 개발 과정 (3) (0) | 2017.03.18 |
프로그램 개발 과정 (2) (0) | 2017.03.17 |
프로그램 개발 과정 (1) (0) | 2017.03.17 |
댓글