Today ’ s Topic - PowerPoint PPT Presentation

today s topic n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Today ’ s Topic PowerPoint Presentation
Download Presentation
Today ’ s Topic

play fullscreen
1 / 16
Today ’ s Topic
113 Views
Download Presentation
blaze
Download Presentation

Today ’ s Topic

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Today’s Topic • Breakdown of GCC script • Description of how different system programs work together to build (and run) a C program.

  2. System Software (for today) • Assembler • Compiler • Linker • Loader • Operating system • Preprocessor

  3. Today’s Objectives • Within context of “compiling” a C program • Define actions of linker, compiler, assembler, OS, macro preprocessor, loader • Draw block diagram showing order of linker, compiler, assembler, macro preprocessor, loader

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

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

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

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

  8. 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

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

  10. 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)

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

  12. Linker • Combines objects, both user .o files and libraries; makes an executable file • gcc *.o –lm yields a.out • gcc –o myExec *.o –lm • Use nm to look at executable

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

  14. Loader • Runs when you type ./a.out • Gets an address to place program (from the operating system) • Changes necessary addresses (if any) • Places code into memory

  15. Operating System • OS is ALWAYS running • Oversees whole compilation process • “Recognizes” gcc example.c command • Parses flags and arguments • Invokes gcc script • Performs memory management (malloc) • Chooses “address” to place program

  16. Compiler Optimization • What does optimization mean? • What does compiler optimization mean? • “Optimization” takes more time to compile in hopes of generating faster executable • -O# is the flag to ask for optimization • gcc –O3 tsp.c gives “highest” level