Efficient Comparison for Identifiers

Identifiers can be very long

Comparing them directly is inefficient

Lexical analyzer can immediately replace them with references to symbol objects

  • hash table stores mapping of strings to symbols
  • pointers equal iff strings equal
  • useful to also have unique integer ID for each symbol (for storing within trees)

No need to undo the mapping of strings to symbol objects

  • except for space reasons in very long compilation tasks


Use the Trie dictionary data structure.