[CodeEater와 제로부터 시작하는 C언어] 2장 - C언어란 무엇인가


C언어를 배운다면 C언어에 대해서도 알고 있는 것이 좋다.
그래서 C언어가 대체 뭔지에 대해서 알아보도록 하는 시간을 가져보자.

C언어는 하버드 대학교 물리학도인 데니스리치가 1972년 벨 연구소에서 만들었다.
이유는 UNIX를 만들기 위해서였다.

당 대에는 프로그래밍 언어는 어셈블리어로 만들었었는데
어셈블리어로 코딩하는것은 매우 난이도가 있는 일이였다.

어셈블리어는 기계어와 1대1 대응인데 이 말인 즉슨 "나도 컴퓨터와 똑같이 생각해야한다"였다.

과거 프로그래밍 언어들은 메모리를 직접관리하려고하지는 않았고
그게 필요하다면 어셈블리어를 사용했었다.
그런데 데니스 리치는 메모리를 효과적으로 관리하는 고수준의 언어를 원했다.

이러한 상황을 타파하기위해 만들어진 것이 바로 ALGOL계 언어이다.
위는 ALGOL계 언어 중 하나인 ALGOL68이다.

차차 개량버전인 CPL, BCPL, B로 진화하기에 이른다.
마지막에 B언어를 만든 켄 톰슨과 함께 C언어를 만들게 된다.
이 C언어는 곧 업계의 표준이 되어서 굉장히 많이 쓰게된다.

후기에 많은 언어들의 원형이 됬는데 이렇게 C언어의 영향을 받은 언어를 C-likes언어라고 부른다.
C언어는 언어계의 라틴어와 같은 위치에 존재하게된다.
그래서 프로그래밍 입문으로 C를 배우는 경우가 많다.
현재는 여러 분야에서 메인으로 쓰이지는 않지만 부분부분은 C언어로 작성하는 경우가 많다.
하지만 주요분야는 임베디드이다.

C언어의 장점은 성능 하나는 끝내준다는 것이다.
현실적으로 C언어보다 성능을 좋게 만드려면 어셈블리어 밖에 없다.
즉 성능의 끝판왕이다.
단점은 성능 좋은거 빼고 전부 다...
잘못 짜게 되면 오히려 성능이 하락할 수도 있다.
C는 코딩하기에는 꽤 난해한 면이 있다.
문법은 쉬워도 활용하기는 어렵다는 이야기이다.

현재는 이러한 C언어의 코딩의 난해함을 해결하기 위해서 여러가지 언어가 추가적으로 출범한 상태이다.
Rust나 Go등이 이렇게 C의 대처를 자처하며 등장하였다. 이러한 언어들이 C를 대체할지는 지켜봐야 알 것이다.
'제로부터 시작하는 프로그래밍 > C' 카테고리의 다른 글
[CodeEater와 제로부터 시작하는 C언어] 4.2장 - 서식 지정자 (0) | 2019.11.30 |
---|---|
[CodeEater와 제로부터 시작하는 C언어] 4.1장 - 변수는 어떻게 표현되는가 (0) | 2019.11.23 |
[CodeEater와 제로부터 시작하는 C언어] 4장 - 변수와 자료형과 포맷 (0) | 2019.11.20 |
[CodeEater와 제로부터 시작하는 C언어] 3장 - 프로젝트 만들기/첫프로그램 (0) | 2019.11.12 |
[CodeEater와 제로부터 시작하는 C언어] 1장 - C언어를 배우는 이유 (0) | 2019.11.11 |