C언어란?
하나의 언어로 작성된 프로그램이, 여러개의 CPU에서 실행될 수 있도록 만든 프로그래밍 언어
( CPU마다 프로그램을 따로 작성해주지 않아도 됨 )
컴파일러란?
C언어, 파스칼 등으로 구현된 프로그램 코드를 어셈블리어 혹은 기계어로 바꿔주는 프로그램
( C언어에서 컴파일러란 말을 처음쓰기 시작했다. )
링커란?
같은 CPU를 사용하더라도, 다른 운영체제를 사용하고 있다면 프로그램을 실행할 수 없다.
( OS마다 다른 커널을 가지고 있기에, 사용해야 하는 명령어가 달라진다. )
링커는 기계어를 운영체제의 커널과 연결해, 운영체제가 실행할 수 있는 파일로 만들어준다.
C언어 프로그램 실행과정
- 사람이 C언어로 명령어 작성하고 파일 저장 ( .c )
- 컴파일러가 C소스파일을 CPU에 맞게 바꾼다. ( 어셈블리어 or 기계어 )
- 어셈블리어일 경우, 어셈블러가 이를 기계어로 바꾼다.
- 링커가 기계어를 운영체제에 맞는 실행 파일로 만든다. ( .exe, .out 등등 )
- 실행파일을 실행한다. ( 프로세스 )
- CPU가 기계어를 수행한다.
반응형