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...