GNU GCC Compiler

  1. The Compilation Pipeline
    1. Overview of Compilation Stages
      1. Four Main Stages
        1. Data Flow Between Stages
          1. Intermediate File Types
            1. Stage Control Options
            2. Preprocessing Stage
              1. Preprocessor Invocation
                1. Preprocessor Directives
                  1. Include Directives
                    1. Macro Definitions
                      1. Conditional Compilation
                        1. Pragma Directives
                        2. Macro Expansion Process
                          1. Comment and Whitespace Handling
                            1. Trigraph and Digraph Processing
                              1. Preprocessor Output Analysis
                              2. Compilation Stage
                                1. Compiler Invocation
                                  1. Lexical Analysis
                                    1. Tokenization Process
                                      1. Token Types
                                        1. Lexical Error Handling
                                        2. Syntactic Analysis
                                          1. Parsing Process
                                            1. Grammar Rules
                                              1. Parse Tree Construction
                                                1. Syntax Error Handling
                                                2. Semantic Analysis
                                                  1. Type Checking
                                                    1. Symbol Table Management
                                                      1. Scope Resolution
                                                        1. Semantic Error Detection
                                                        2. Intermediate Code Generation
                                                          1. Internal Representations
                                                            1. Code Optimization Preparation
                                                            2. Assembly Code Output
                                                            3. Assembly Stage
                                                              1. Assembler Invocation
                                                                1. Assembly Language Processing
                                                                  1. Machine Code Generation
                                                                    1. Object File Creation
                                                                      1. Symbol Table Generation
                                                                        1. Relocation Information
                                                                        2. Linking Stage
                                                                          1. Linker Invocation
                                                                            1. Symbol Resolution
                                                                              1. Address Assignment
                                                                                1. Library Integration
                                                                                  1. Executable File Creation
                                                                                    1. Static vs Dynamic Linking Decisions