하루 1소단원씩 보고 있는데, 정리하는 느낌으로 적어봅니다

1.1장:Information Is bits+context

  • Hello 프로그램의 소스 코드는 아스키 코드로 저장되어 있음

1.2장:Programs Are Translated by Other Programs into Different Forms



  • 프로그램의 소스 코드는 전처리→컴파일→어셈블리→링킹을 통해 실행 파일로 변환됨
  • 전처리 과정에서는 전처리기가 #include, #define, #ifdef 등을 처리함. 전처리가 완료된 파일의 확장자는 .i.
  • 컴파일 과정에서는 저수준 언어인 어셈블리어로 프로그램을 컴파일함. 어셈블리어 프로그램의 확장자는 .s.
  • 어셈블리 과정에서는 어셈블러가 어셈블리어를 기계어로 변환함. 기계어 파일의 확장자는 .o.
  • 링킹 과정에서는 링커가 서로 다른 기계어 파일들을 합쳐 실행 파일을 만들어냄.
    • 예:hello.o와 print.o가 합쳐져 hello 프로그램이 됨.

요약:프로그램의 컴파일 과정을 분석해 보았다.

1.3:It Pays to Understand How Compilation Systems Work

  • 왜 컴파일 시스템을 이해해야 하는가
    • 프로그램의 최적화와 속도 향상을 위하여
    • 링킹 에러 분석을 위하여
    • 보안 구멍을 막기 위하여

요약:컴파일 시스템을 배워야 하는 이유를 알아보았다.