안녕하세요!! @wonnieyoon입니다.
오늘은 우리가 실행시키는 프로그램들이 어떻게 만들어지는지 포스팅하겠습니다.
먼저 프로그램은 크게 4가지의 과정을 통해 만들어진다고 볼수 있습니다.
전처리기 -> 컴파일러 -> 어셈블러 -> 링커
1.전처리기
#include , #define 등으로 #으로 시작하는 지사에 따라서 소스코드를 적절히 변경합니다.
2.컴파일러
전처리기에 의해 변경된 코드를 컴파일러에 의해 어셈블리 코드로 번역됩니다.
CPU가 디자인 될때 CPU에게 일을 시키기 위한 명령어도 함께 디자인 되는데 ,
어셈블리 코드란 명령어를 조합해서 만들어진 프로그램 코드를 의미합니다.
3.어셈블러에 의한 바이너리 코드 생성
컴파일러에 의해 번역된 어셈블리 코드는 컴퓨터에 의해 실행되기에 앞서서 바이너리 코드로 번역되어야만 합니다. 왜냐하면 컴퓨터는 0,1만을 이해하기 때문입니다.
4.링커에 의한 연결과 결합
프로그램 내에서 참조하는 함수나 라이브러리들을 하나로 묶는 작업을 수행하는 역할을 하는것이 링커입니다. 이 과정이 끝나야 비로소 실행파일이 됩니다.