Each entry in a symbol table can be implemented as a record that consists of several fields. These fields are dependent on the information to be saved about the name. But since the information about a name depends on the usage of the name (i.e., on the program element identified by the name), the entries in the symbol table records will not be uniform. Hence, to keep the symbol table records uniform, some of the information about the name is kept outside of the symbol table record, and a pointer to this information is stored in the symbol table record, as shown in Figure 7.1. Here, the information about the lower and upper bounds of the dimension of the array named a is kept outside of the symbol table record, and the pointer to this information is stored within the symbol table record.