External Symbol Dictionary (ESD)



Irrespective of whether the programming language is Assembler, COBOL or PLI, the compilation produces an object module of machine code which is not yet executable. The first record of the object module is the External Symbol Dictionary (ESD) which contains a list of references to beyond the boundary of this module. Even if the source code does not issue any CALL statements, the ESD will still exist, with a single entry naming this module, as illustrated opposite.

If modular programming techniques are employed, each object module will have its own ESD. One of the functions of the Linkage Editor is to aggregate the entries from all the ESD records to produce a Relocation Dictionary (RLD).

Resolving External References (1 of 2)



                                    External Symbol Dictionary   
Symbol   Type   Id     Address  Length   Owner Id Flags Alias-   
ESD1      SD 00000001 00000000 00000070             02           
															 
  Active Usings: None                                            
  Loc  Object Code    Addr1 Addr2  Stmt   Source Statement       
000000                00000 00070     1 ESD1     CSECT           
                                      2 ESD1     AMODE 31        
                                      3 ESD1     RMODE 24        
                                      4          PRINT NOGEN     
000000                00000 00070     5 ESD1     CSECT           
                 R:F  00000           6          USING *,R15     
000000 47F0 F058            00058     7 BEGIN    B     START


This and the next page use Assembler code for demonstration purposes, but the concept of an ESD Record is equally true for COBOL Fortran, and PLi.

With High Level Languages it is unlikely that the ESD will have no external references, as there will be implicit calls to either Language Environment or Compiler specfic Run-Time Routines.

Copyright © Legac-e Education 2015-