- #include, #define같이 #으로 시작하는 지시자의 지시에 따라서 소스코드를 적절히 변경한다.
- 단계 1에 의해서 변경된 소스코드는 아직은 사람이 이해하기 쉬운 고급 언어로 이루어져있다.
- 컴파일러에 의해서 어셈블리 코드1)로 번역된다.
- 어셈블러에 의해 바이너리 코드(기계어)2)로 바뀐다.
- 프로그램 내에서 참조하는 함수나 라이브러리를 하나로 묶는 작업
- 이 과정이 끝나면 실행 가능한 실행파일이 생성된다.
- 실행파일이 실행되면 실행파일을 구성하는 바이너리 코드가 메인 메모리에 올라가고 CPU가 순차적으로 실행시킨다.
- 로더에 의해 코드가 메모리에 적제되고 실행된다.
- CPU에게 일을 시킬 수 있는 명령어의 조합
- 0과 1로만 구성된 코드