모두를 위한 컴퓨터 과학 (CS50 2019) - 배열_1강. 컴파일링

Alex·2022년 3월 22일
0

ComputerScience

목록 보기
9/10

1강. 컴파일링

1) 전처리(Precompile)

  • 컴파일의 전체 과정은 4단계로 나누어볼 수 있음. 전처리는 그 중 첫 번째 단계.
  • 으로 시작되는 C 소스코드는 전처리기에서 실질적인 컴파일이 이루어지기 전에 무언가를 실행하라고 알려줌.

  • 예를들어, #include는 전처리기에게 다른 파일의 내용을 포함시키라고 알려줌.

2) 컴파일(Compile)

  • 컴파일러라고 불리는 프로그램은 C코드를 어셈블리에라는 저수준 프로그래밍 언어로 컴파일
  • 어셈블리는 C보다 연산의 종류가 훨씬 적지만, 여러 연산들이 함께 사용되면 C에서 할 수 있는 모든 것들을 수행할 수 있음.
  • 컴파일이라는 용어는 소스 코드에서 오브젝트 코드로 변환하는 전체과정을 통틀어 일컫기도 하지만, 구체적으로는 전처리한 소스 코드를 어셈블리 코드로 변환시키는 단계를 말함

3) 어셈블(Assemble)

  • 어셈블리 코드를 오브젝트 코드로 변환
  • 컴퓨터의 중앙처리장치가 프로그램을 어떻게 수행해야 하는지 알 수 있는 명령어 형태인 연속된 0과 1들로 바꿔주는 작업
  • 만약, 소스 코드에서 오브젝트 코드로 컴파일 되어야 할 파일이 한 개라면, 컴파일 작업은 여기서 끝.
  • 만약 프로그램이 (math.h나 cs50.h와 같은 라이브러리를 포함해) 여러 개의 파일로 이루어져 있어 하나의 오브젝트 파일로 합쳐져야한다면 링크라는 컴파일의 마지막 단계가 필요.
  • 링커는 여러 개의 다른 오브젝트 코드 파일을 실행 가능한 하나의 오브젝트 코드 파일로 합쳐준다.
profile
With Data or Without Data?

0개의 댓글