본문 바로가기
Program/C

프로그래밍 기초 - 1. 컴파일

by C_Meaning 2019. 1. 4.
728x90

프로그램은 정확하고 간결한 (제한된 규격안에서 최대의 효율을 위해) 표현을 사용해야하며, 이러한 규칙들을 정의한 것들이 프로그래밍 언어이다.


인간어로 프로그램을 만든다고 해보자. 프로그램은 앞서 서술했듯, '일의 순서'를 말한다.


프로그램 명 : 

사과 스무디 만들기


만드는 방법 : 

1. 사과와 우유, 꿀을 준비한다.

2. 사과를 분쇄하기 쉽게 조각썰기한다.

3. 갈아낸 사과에 우유와 꿀을 넣어 갈아낸다.

4. 컵에 붓는다

5. 인증 사진을 찍어서 올린다.

6. 마신다.

7. 맛에 대한 평가를 알려준다.


자, 이것을 이제 프로그래밍 언어인 C언어를 통해 소스코드로 변환해야한다. 그런데 우리가 표현할 수 있는 것으로, '문자'와 '숫자'가 있는데 이를 그대로 컴퓨터에게 표현할 시 컴퓨터는 알아듣지 못한다. 마치 영어를 모르는 상태로 외국인에게 한국어로만 대화를 시도하는 격이다.


그래서 인간어(소스코드)를 기계어로 번역을 해서 전달할 필요가 있고 이를 담당하는것이 바로 '컴파일러'이다.

컴파일러는 우리가 짠 소스코드를 하나의 문자 단위로 아스키코드로 변환처리한 후 컴퓨터에게 알려준다.


ex) 10 + 20 = 30;   컴파일 -> '1' '2' '+' '2' '0' '=' '3' '0' ';' 이런식으로 말이다.

아스키코드에는 127가지의 숫자단위로 이루어진 고유 문자코드가 존재한다.


우리가 소스코드를 컴파일하여 화면에 출력하는 루틴은 다음과 같다.


전처리 -> 컴파일 -> 링크


이제 위의 인간어를 소스코드로 변환하기 전에 예제코드를 짜보자.


1
2
3
4
5
6
7
#include <stdio.h>
 
int main(){
    printf("Hello Programmer!\n");
 
    return 0;
}
cs

위의 코드는


"Hello Programmer!" 라는 문장을 출력하는 기본 코드이다.

이제 각 코드가 무엇인지 알아볼까?


1행은 #include 는 파일형태의 전처리문으로, stdio.h 헤더 파일의 내용을 쓰겠다는 의미이다.


3행의 int main은 int(정수)형 리턴타입을 가진 main 함수를 생성한다. 참고로 main() 함수는 어떤 프로그램이던 프로그램의 주체 그 자체다. 즉, 프로그램이 동작하는데 있어 꼭 필요하다.


4행의 printf는 stdio.h 헤더 파일에 포함된 함수로, 표준출력함수이다. 표준 출력은 모니터로 뿌려주는걸 말한다.


6행의 return 0 는 반환값으로 0을 돌려준다는 의미이다.


이제 위의 인간어를 여기에 비유하여 변환하자면

모든 것을 처리하는 믹서기는 메인함수가 될 수 있겠고 사과, 꿀, 우유가 전처리문, 인증사진 올리는 것을 출력문, 마지막으로 마시고난 뒤에 평가를 전달하는 것을 리턴에 비유할 수 있을 것이다.

728x90

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

프로그램 기초  (0) 2019.01.03

댓글