Symbol tables
Symbol tables are used by compilers and interpreters to keep track of the symbols and different entities, such as objects, classes, variables, and function names, that have been declared in a program. Symbol tables are often built using hash tables since it is important to efficiently retrieve a symbol from the table.
Let’s look at an example. Suppose we have the following Python code in the symb.py file:
name = "Joe"
age = 27
Here, we have two symbols, name and age. Each symbol has a value; for example, the name symbol has the value Joe, and the age symbol has the value 27. A symbol table allows the compiler or the interpreter to look up these values. So, the name and age symbols become keys in the hash table. All of the other information associated with them becomes the value of the symbol table entry.
In compilers, symbol tables can have other symbols as well, such as functions and class names. For example, the greet() function...