본문 바로가기

컴퓨터/C언어 쉽게 배워보자

C 언어 강좌 2. C언어, 너는 무엇이냐!

안녕하세요 sdk입니다. 

오늘까지는 아마도, 코드이야기보단 이런저런 소개를 할듯 합니다.


이번엔 C언어에 대하여 역사나 특징 등등을 소개해볼까합니다.

글이 짧을거같지만 시작해보죠!


자 , 우선 C언어에 대해서 알아보도록 하죠

미국 벨 연구소라는곳에서 리치 ( D.M. Ritchie )가 개발한 언어입니다.

조금더 파해쳐봅시다.

케임브리지 대학교에서 시작된 CPL  이라는 언어에서 BCPL로 탄생하고 미국의  켄 톰슨이 B라는 언어를 만들었고, 같은 벨 연구소의 데니스 리치가 최종적으로 C 라는 언어를 만듬으로써 현제 우리가 공부할 C언어가 탄생하였습니다.


 이제 다음이야기로 넘어가겠습니다.


전 포스팅에서 고급 언어 (HIgh Level) 저급 언어 (Low Level)에 대하여 이야기 했던것이 기억나십니까?

과연 C언어는 어느쪽에 해당할까요?

저는 C언어를 두고  고급언어 와 저급언어 사이에 있는 ( 굳이 따지자면 고급언어 쪽에 조금 더 가까이 있는 ) 언어라고 말하고 싶네요.

일단 C언어는 코드를 하드웨어에 맞는 기계어로 변경해주는 '컴파일' 작업 ( 저번에 알려드렸던 컴파일러 맞습니다)을 거칩니다.

따라서 하드웨어에 관계없이 같은 코드로 동작할 수 있죠. 하지만 C언어는 컴퓨터 메모리에 직접적인 접근을 가능하게 하는

저급 언어의 속성도 가지고 있답니다.

이런저런 이유로 저는 C언어가 고급언어이자 저급언어다 라고 말하고 싶네요. 


C언어는 다른 언어들에 비해 처리속도가 빠릅니다!

C언어는 일단 하드웨어상에서 직접적으로 돌아가고 있다고 말할수 있습니다. ( 굳이 굳이 따지자면 OS위에서겠지만요)

따라서 Java와 같이 VM ( 가상 머신) 위에서 돌아가는 언어들보다 속도가 빠릅니다.

참고로 , 우리가 공부할땐 이런 속도걱정은 잠시 접어둬도 괜찮을듯 합니다.

우리가 인지하지 못할정도로 조금 더 빠른 속도일수도 있기 때문이죠.


한번쯤 들어보셧는지요

' 절차지향' , ' 객체지향 '

 C언어는 절차지향 언어의 형태를 취합니다!

객체지향은.... 나중에 이야기 해보도록 하자구요

우선 그것만 압시다

한줄한줄 내려가는 방식..!

아, 그리고 C# Java , Objective -C등등 전부 C를 모티브로 만들어진 (파생된 ) 언어입니다.

따라서 C언어를 알게되면 저 언어들의 문법을 대강 알게된다는 것이죠.

(물론 대강입니다, 다른점도 꾀나있고요)


따라서 우리는 이제 C언어를 공부하게 될것입니다.

나중에 가면 메모리에 직접 접근해보는것도 해볼것이고, 제어도 해볼것입니다.

와, 벌써부터 두근거리는데요.


짧은 이번포스팅은 여기서 마치도록 하겠습니다.





여러분들의 댓글은 큰 힘이됩니다 :)