CSAPP: Chapter1.1~Chapter1.2

In a sense, the goal of this book is to help you understand what happens and why when you run hello on your system.

//The hello.c file.
#include <stdio.h>

int main()
{
  printf("hello, world\n");
  return 0;
}

1.1 Information Is Bits+Context

1)File categories.

Files such as hello.c that consist exclusively of ASCII characters are known as text files. All other files are known as binaryfiles.

2)C Programming Language

C was closely tied with the Unix operation system.

C is a small and simple language.

C was designed for a practical purpose.(Implement the Unix operation system)

ANSI: American National Standards Institute.

ISO: International Standards Organization.

1.2 Programs Are Translated by Other Programs into Different Forms 

1)Different Forms

high-level C program which is also called source file to low-level machine-language instructions to executable object files.

2)Compilation system collection

preprocessor, compiler, assembler, and linker

3)Compilation system

Preprocessing phase. The preprocessors modifies the original C program according to directives that begin with the ‘#’ character. For example, the #include <stdio.h> command in line 1 of hello.c tells the preprocessor to read the contents of the system header file stdio.h and insert it directly into the program text.The result is another C program named hello.is.

Compilation phase. The compiler translates the text file hello.i into the text file hello.s, which contains an assembly-language program.Assembly language is useful because it provides a common output language for different compilers for different high-level languages(For example, C and Fortran).

Assembly phase.The assembler translates hello.s into machine-language instructions, packages them in a form known as a relocatable object program, and stores the result in the object file hello.o.

Linking phase.Merge printf.o with our hello.o into a new executable object file that is ready to be loaded into memory and executed by the system.

如圖:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章