C언어는 개발자들이 접할 수 있는 처음 언어이거나 프로그램 개발의 기초가 되는 언어이다.
B언어 다음으로 개발되어졌다고 하는데, B언어는 Bell 연구소에서 개발되었다고 한다. 켄 톰슨은 BCPL언어를 필요에 맞추어 개조해서 "B"언어(언어를 개발한 벨 연구소의 B를 따서)라 명명했고, 데니스 리치가 이것을 개선하여 C 언어가 탄생했다. 모든 명령에 대해서 코드로 되어 있다. C언어는 이 코드를 유닉스 운영 체제에서 사용하기 위해 개발한 프로그래밍 언어이다. 1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 개발했다.
유닉스 시스템의 바탕 프로그램은 모두 C로 작성되었고, 수많은 운영 체제의 커널 또한 C로 만들어졌다. C언어가 유명한 이유는 아마도 개발자들에게 친화적이였기때문이다. 이렇게 말하면 C언어도 외계어라고 느끼는 수많은 사람들에게 배신감을 주겠지만, C언어 정도면 충분히 사람이 이해할 수 있는 언어로 보는 것이다. 왜냐면 그 전에는 기계어, 어셈블리어와 같은 기계가 이해하기 쉬운 언어로 개발을 했어야했기 때문이다. 그 명령어들은 언뜻 보면 이해가 도저히 되지 않는 코드들과 숫자들의 연속이기 때문이다. 심지어 기계어는 사람의 생각을 명령어로 바꾸고 명령어를 16진수로 바꿔서 입력했기에 코드만 봐서는 도저히 이해할 수 없었을 것이다. 그래서 개발이 제일 많이 되어지고, 사람들에게 익숙하게 한 것이 C언어이기에 많은 프로그램이 나오고 유명해진 것으로 보인다.
C언어는 유닉스를 만드는 기초적인 언어이고, 초창기 프로그램의 많은 부분이 C언어로 개발이 되었다. 일부 예전 기계를 제어하는 프로그램에서는 지금도 C언어를 사용하는 경우가 있다. 장점으로는 메모리의 사용이 있을 수 있다. 이것이 장점일 수도 있고, 단점일 수도 있지만, 메모리를 할당해서 사용한다. 물론 이점에서는 C++이라는 언어와 같은 면이 있지만, C언어는 조금더 심플한 순차적 프로그램에서 간편하게 개발할 수 있다는 장점도 있다.
C언어에서 가장 중요한 개념은 2가지 정도일텐데, 첫번째가 함수이고, 두번째가 포인터이다. 물론 대표되는 중요한 개념도 많지만, 두가지인 이유는 함수로 대부분의 프로그램은 개발되어지고, 그 함수를 호출하면서 호출한다는 그 함수를 부른다는 의미이고, 그렇게 되면 그 불려진 함수가 사용되어진다. 함수로 이뤄졌다고 해도 과언이 아니다. 함수 호출의 연속이다. 그리고 포인터이다. 포인터는 무언가를 가르킨다는 의미의 단어이다. C언어에서의 포인터도 마찬가지이다. 특정 영역을 가르키는 것이 포인터이다. 포인터를 사용하게 되면 해당하는 메모리를 가르킨다. 여기까지 개념만 보면 그렇게 어렵지 않은데, 포인터에서 C언어 개발을 중도에 포기하기도 한다. 그래서 포인터의 개념은 쉽지 않다. 포인터를 이용해서 여기저기 가르키며 값도 변경시키고, 값을 함수로 넘기기도 한다. 포인터에는 2중 포인터까지 있어서 그 복잡함을 더한다.
책처럼 전체를 보기를 원하시면 아래 링크를 클릭하시고 북마크 하셔서 보시면 편리합니다.
'쉽게 풀어본 IT 기술 ' 카테고리의 다른 글
C++은 C언어와 무슨 차이예요? (0) | 2018.08.31 |
---|---|
정렬 알고리즘을 쉽게 개념만 (0) | 2018.08.31 |
알고리즘을 뭐라 말할까? (0) | 2018.08.31 |