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

C언어 강좌 1. 프로그래밍 언어와 컴파일러

sdk 2016. 1. 24. 02:20

안녕하세요 sdk입니다. 

첫번째 강좌를 시작하도록 하겠습니다.


사실 첫 강좌는 C언어만에 국한된 내용이 아닙니다. 

조금 실망하셧으려나요

이번에 할 이야기는 프로그래밍 언어는 무엇이고

'컴파일러'가 무엇인지 알려드려 보고자 합니다.



많이 들어보셧을 '프로그래밍 언어'

프로그래밍 언어는 무엇일까요

부족하겠지만 제가 이해한 그대로 써보도록 하겠습니다. 풀어서요

프로그래밍 언어란  컴퓨터에게 일을 시키기 위해 사용하는 하나의 수단입니다.

뭐 예를들어 

A라는 사람한테 B라는 사람이 과자를 사오라고 시킵니다.

B: "A야 과자 좀 사와" 

저렇게 말할때 사용된 언어 ( 이글에선 한국어겠죠? ).


A가 만약 컴퓨터라면 그리고 그 A한테 어떤 문서좀 프린트 해줘!! 라고 시키려고 합니다.

과연 컴퓨터에게 저것을 시키려면 어떻게 해야할까요?

이때 사용하는 언어가 프로그래밍 언어 입니다.

아아, 한글과 컴퓨터 혹은 워드 프로세서를 이용하면 된다구요? 

그런 프로그램 또한 프로그래밍 언어로 이뤄져 있습니다!! 그 언어들이 컴퓨터와 대화를 시도하는것이죠!

 자 우리는 이제 그런 프로그램을 만드는 방법을 배워볼껍니다!

이런말이 있죠

"천리길도 한걸음 부터"

 그러한 프로그램들도 결국엔 어떠한 프로그래밍 언어로 이뤄져 있습니다

하나 혹은 두가지 이상으로요.


 프로그래밍 언어또한 종류가 엄 ~ 청 많습니다. 

저는 여기서 고급 언어 저급 언어 ( High Level , Low Level ) 에 대한 이야기를 해볼까 합니다.

여러가지 프로그래밍 언어  ex) 파이썬, 어셈블리, C, Java 기타 여~~러가지 언어들은 크게 두가지 범주로 나뉘어 집니다.

고급 언어 ( High Level ) 와 저급 (Low Level) 로 말이죠.

저급이라고 저급해, 고급이라고 고급져 이런소리가 아닙니다! 잘 들어보세요?

 우선 저급언어 ( Low Level ) 언어에 대하여 간단하게 소개하도록 하겠습니다

 저급언어 (Low Level ) 란 어셈블리 ,기계어 등등과 같이 명령을 하드웨어에 직접적으로 내리는 언어를 지칭합니다.

하드웨어와 밀접한 관계가 있어 하드웨어에 종속성을 가집니다. 칩셋별로 명령어 구성등이 조금씩 다르다고 하네요.

 그러면 고급언어 (High Level) 에 대해 이야기 해보도록 하겠습니다. 

 고급언어 (High Level) 란 C++ , Java 등 과 같이 하드웨어에게 직접적인 명령을 내리지 않고 프로그래머가 코드를 작성하면 그 언어에 내장되어 있는 컴파일러 ( 컴파일러는 아래에서 소개하도록 하겠습니다 )가 Low Level 언어로 혹은 기계어로 바꿔서 하드웨어에게 명령을 내리는 방식입니다 


 저 위의 내용은 중요하긴 하지만, 이 사실만 기억하셔도 큰 문제는 없을듯 합니다.

 저급 언어 ( Low Level ) 란 컴퓨터랑 조금 더 친한 언어

 고급 언어 ( High Level ) 란 프로그래머랑 조금 더 친한 언어.


자 이제 대망의 " 컴파일러" 에 대하여 이야기 해보고자 합니다.

컴파일러란 고급 프로그래밍 언어로 쓰여진 코드를 저급 언어로 번역해주는

일종의 번역기 입니다.


그러니까 , 프로그래머에 의해 쓰여진 고급 언어 코드를 컴퓨터가 이해하기 쉽도록 그 코드를 번역( 컴파일 ) 한다는 것이죠.

 컴파일러 이야기를 해보면 원시언어, 목적언어 어쩌고 저쩌고 이런이야기를 할수도 있겠지만, 굳이 이야기 안해도 될것같아 

생략합니다.

이 사실만 기억합시다. 

컴파일러는 프로그래머가 작성한 코드를 컴퓨터가 이해할수 있도록 번역하는 작업을 해주는 프로그램 이라고!



오늘 포스팅은 마치도록 하겠습니다. 


부족한 글 읽어주셔서 감사합니다.



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