본문 바로가기

Programming/C

[C lang] 0. C 언어란?

드디어 강의를 쓰게되네요 ㅋㅋ 지금까지 시간이 안되서 미루고 미루다 드뎌 ㅋㅋ

 

그럼 시작하겠습니다 !

 

 

1. C언어란 무엇인가?

먼저 C 언어란 무엇인가요? 혹시 전에 들어보신적 있으시나요?

 

간략하게 설명해 드리면 답은 프로그래밍 언어입니다,

 

프로그래밍 언어란 우리 지구에 한국어 영어 등.. 사람들 사이에 소통하기 위해서 사용하는 언어처럼

 

프로그래밍 언어는 컴퓨터하고 소통하기 위해서 만들어진 언어입니다.

 

이와같은 프로그래밍 언어에 C, C++, C#, Java, Python ... 여러가지 언어가 있습니다

 

그 많은것 중에서 이제 우리는 C언어를 배우는 거죠

 

 

그럼 C 언어의 탄생을 알아보겠습니다 

 

'C언어본ㅅ' 책의 내용을 따오면  

 

C언어는 1972년 미국의 AT&T사의 벨 연구소의 원구원들은 데니스 리치와 켄 톰슨에 의해서 만들어진 프로그래밍 언어입니다

 

C언어가 개발된 이유는 UNIX 운영체제를 만들기 위해서였습니다

 

중략...ㅋㅋ

 

B언어의 성능 개선을 위해 데니스 리치가 1972년에 C언어를 개발했습니다 C언어를 개발한 후에 어셈블리어로 작성되었던 초기 UNIX 운영

 

체제는 상당 부분 C언어로 다시 작성되었습니다

 

현재까지도 C언어는 운영체제 또는 운영체제 기반의 응용프로그램을 개발할 떄 사용하는 효율성이 높은 프로그래밍 언어이며 ,

 

임베디드 시스템 소프트웨어 분야 ( 머리터지죠 ㅋㅋ ) , 모바일 분야 , 자율 컴퓨팅 분야 등의 선도적인 분야에서도 매우 폭넓게 사용되고

 

있는 대중적인 프로그램이 언어입니다.

 

 

네... 이렇게 C 언어가 무엇인지 기원을 알아봤고요 ( 중요하진 않아요 ㅋㅋㅋ )

 

 

 

이제 좀 다른 파트로 넘어가서 컴파일러가 뭔지 좀 알아봅시다

 

 

2.컴파일러란 ? 

 

컴파일러란 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해하게 기계어로 변환하는 일종의 변환기로 보시면 됩니다.

( 이정도 개념을 알아주시면 되겠습니다 )

 

여기서 또 기계어란 무엇이나면 기게가 이해하는 2진수 ( 0 , 1 이런거 )로 작성된 언어에요.

 

프로그래머가 C언어로 작성한 C프로그램을 C컴파일러가 이걸 기계어로 변환하는거죠. 그래야 컴터가 이해하니까요

 

약간 중요한 부분이여서 글씨를 굵게 해 놨습니다.

 

3. 프로그램 작성 과정

 

그다음 프로그램이 어떻게 작성이 되는지 과정을 보겠습니다

 

처음 프로그래머가 C언어로 소스 코드를 작성해서 C언어 소스파일을 만듭니다 ( 1단계 )  ( 이때 파일의 확장자는 .c 입니다 )    

"소스란 뜻은 우리가 친 명령어가 있는 파일이라 보시면 되요"

 

사람이 이해할 수 있는 C 소스 파일을 컴파일(기계어로 변환)해서 기계가 이해할 수 있는 언어로 바꿉니다. 그리고 이 결과물로 오브젝트 파일이 생성됩니다  ( 2단계 )

 

그다음 이 오브젝트 파일이 링커에게로 넘어가는데요

링커란 오브젝트 파일과 표준 라이브러리 함수를 연결하여 하나의 파일로 통합해주는 겁니다. 그리고 이 과정을 '링크' 라 부르죠

링크란 단계를 수행하면 이제 우리가 많이 보던 exe 실행파일을 생성합니다 ( 3단계 )

 

마지막으로 이 실행파일은 로더에게 넘겨집니다. 로더란 실행파일을 주기억 장치(RAM)에 로딩함으로써 CPU가 실행파일을 실행하도록 도와줍니다. 이 과정을 로딩이라 부르죠 ㅋ

 

 

뭔가 복잡하죠? ㅋ ㅋ ㅋ

 

솔직히 말하면 이런거 완벽히 안외어도 프로그래밍 하는데 지장은 거의 없어요 ㅋㅋ

 

근데 적어도 어떻게 이렇게 된는지 과정은 이해하시고 계셔야 합니다 ㅋ 안그러면 곤란해요 ㅋㅋ

 

이번 강의는 여기서 마무리를 하겠습니다 ㅋ

 

프로그래밍 언어쪽은 첫 강의네요 ㅋ 부족한 점이나 추가하면 좋은점 이나 궁금하신 점은 댓글로 달아주시면

 

답변해 드리겠습니다.

 

이상입니다.

'Programming > C' 카테고리의 다른 글

[C lang] 콘솔창 바로 안 꺼지게 하기  (4) 2014.04.26
[C lang] 4. 상수와 연산자  (0) 2014.04.26
[C lang] 3. 변수?!  (0) 2014.04.26
[C lang] 2. printf(), scanf()  (0) 2014.04.26
[C lang] 1. 컴파일러 설치하기  (0) 2014.04.26