4.3 Code layout and addressing 4.3.1 Nested procedure definitions 4.3.2 Paged machines 4.3.3 Events 4.4 Data layout and addressing 4.5 Procedure entry and exit 4.5.1 User-defined procedures 4.5.2 External procedures 4.5.3 Permanent procedures 4.5.4 Primitive procedures 4.6 Language-specified and compiler-generated objects 4.6.1 Internal labels 4.6.2 Temporary objects 4.7 Object-file generation 4.7.1 Reordering 4.7.2 Jumps and branches 4.7.3 Procedures 4.7.4 External linkage 4.7.5 In-line constants 4.7.6 Object-file format 4.8 Summary 5 Review of the overall structure 5.1 Division of function 5.2 Testing and development 5.3 Diagnostics 5.3.1 Line numbers 5.3.2 Diagnostic tables 5.3.3 Run-time checks