Create a symbol table to keep track of the identifiers that a program uses. When the compiler encounter an identifier will search to see is been already encountered, if the identifier is new will added to the table. The table will be create by using the class HashedDictionary, which use separate chaining to resolve collision. Then use the hash function h(x) = x mod tableSize and the algorithm that involves Horners rule, to convert a variable into an integer x.