Presentation is loading. Please wait.

Presentation is loading. Please wait.

Today’s Topic Breakdown of CC script.

Similar presentations


Presentation on theme: "Today’s Topic Breakdown of CC script."— Presentation transcript:

1 Today’s Topic Breakdown of CC script

2 Today’s Objectives Within context of “compiling” C program
Define actions of linker, compiler, assembler, OS, macro preprocessor, loader Draw block diagram showing order of linker, compiler, assembler, OS, macro preprocessor, loader Explain why runtime stack needed for C Draw logical division of memory into stack, heap Compare and contrast stack and heap For C program, indicate which variables are stored in heap; in stack; in neither

3 Breaking Down CC Preprocessed Source source Compiler Assembler .s
ASM Compiler Assembler Preprocessor .s O B J E C T Executable Program In Memory Executable Loader Linker a.out .o

4 Breaking Down CC Preprocessed Source source Compiler Assembler .s
ASM Compiler Assembler Preprocessor .s O B J E C T Executable Program In Memory Executable Loader Linker a.out .o

5 C Preprocessor (cpp) Pass over source Define macros
Insert included files Perform macro substitutions Define macros #define NUM #define xx(v,name,op,metrics) \ v=xxinit(op,name,IR->metrics) gcc –E example.c sends preprocessor output to stdout

6 Breaking Down CC Preprocessed Source source Compiler Assembler .s
ASM Compiler Assembler Preprocessor .s O B J E C T Executable Program In Memory Executable Loader Linker a.out .o

7 Compiler gcc actually name of a script
Compiler translates one language to another (or the same???) gcc compiler translates C to assembler gcc –S example.c “saves” example.s Compiler consists of Parser Code generation Mysticism

8 Breaking Down CC Preprocessed Source source Compiler Assembler .s
ASM Compiler Assembler Preprocessor .s O B J E C T Executable Program In Memory Executable Loader Linker a.out .o

9 Assembler Another translator ??? (as example.s)
Assembler to (binary) object Why not compile straight to binary? gcc –c example.c to “save” object NM to look at object (nm example.o)

10 Breaking Down CC Preprocessed Source source Compiler Assembler .s
ASM Compiler Assembler Preprocessor .s O B J E C T Executable Program In Memory Executable Loader Linker a.out .o

11 Linker Combine objects, both user .o files and libraries, make an executable gcc *.o –lm yields a.out gcc –o myExec *.o –lm Use nm to look at object

12 Breaking Down CC Preprocessed Source source Compiler Assembler .s
ASM Compiler Assembler Preprocessor .s O B J E C T Executable Program In Memory Executable Loader Linker a.out .o

13 Loader Gets an address to place program
Changes necessary addresses (if any) Places code into memory

14 Operating System Oversees whole process
“Recognizes” gcc example.c command Parses flags and arguments Invokes gcc script Performs memory mangagement (malloc) Chooses “address” to place program


Download ppt "Today’s Topic Breakdown of CC script."

Similar presentations


Ads by Google