C언어를 배운다면 C언어에 대해서도 알고 있는 것이 좋다.

 

그래서 C언어가 대체 뭔지에 대해서 알아보도록 하는 시간을 가져보자.

 

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

 

이유는 UNIX를 만들기 위해서였다.

 

 

당 대에는 프로그래밍 언어는 어셈블리어로 만들었었는데

 

어셈블리어로 코딩하는것은 매우 난이도가 있는 일이였다.

 

 

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

 

Fortran과 Cobol과 Basic은 메모리를 직접 관리하는게 제한된다.

 

과거 프로그래밍 언어들은 메모리를 직접관리하려고하지는 않았고


그게 필요하다면 어셈블리어를 사용했었다.


그런데 데니스 리치는 메모리를 효과적으로 관리하는 고수준의 언어를 원했다.

 

 

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

 

위는 ALGOL계 언어 중 하나인 ALGOL68이다.

 

차차 개량버전인 CPL, BCPL, B로 진화하기에 이른다.


마지막에 B언어를 만든 켄 톰슨과 함께 C언어를 만들게 된다.


이 C언어는 곧 업계의 표준이 되어서 굉장히 많이 쓰게된다.

 

후기에 많은 언어들의 원형이 됬는데 이렇게 C언어의 영향을 받은 언어를 C-likes언어라고 부른다.

 

C언어는 언어계의 라틴어와 같은 위치에 존재하게된다.

 

그래서 프로그래밍 입문으로 C를 배우는 경우가 많다.

 

현재는 여러 분야에서 메인으로 쓰이지는 않지만 부분부분은 C언어로 작성하는 경우가 많다.

 

하지만 주요분야는 임베디드이다.

 

C언어의 장점은 성능 하나는 끝내준다는 것이다.


현실적으로 C언어보다 성능을 좋게 만드려면 어셈블리어 밖에 없다.


즉 성능의 끝판왕이다.

 

단점은 성능 좋은거 빼고 전부 다...


잘못 짜게 되면 오히려 성능이 하락할 수도 있다.


C는 코딩하기에는 꽤 난해한 면이 있다.


문법은 쉬워도 활용하기는 어렵다는 이야기이다.

 

 

현재는 이러한 C언어의 코딩의 난해함을 해결하기 위해서 여러가지 언어가 추가적으로 출범한 상태이다.

 

Rust나 Go등이 이렇게 C의 대처를 자처하며 등장하였다. 이러한 언어들이 C를 대체할지는 지켜봐야 알 것이다.

Posted by Kamangs