Chapter 6: Symbol Tables
To understand the uses of names in program source code, your compiler must look up each use of a name and determine what that name refers to. You can look up symbols at each location they are used by using table data structures that are auxiliary to the syntax tree. These are called symbol tables. Performing operations to construct and then use symbol tables is the first step of semantic analysis. Semantic analysis is where you study the meaning of input source code.
Context-free grammar in the syntax chapters of this book have terminal symbols and non-terminal symbols, and those are represented in tree nodes and token structures. When talking about a program's source code, the word symbol is used differently. In this and later chapters, a symbol refers to the name of a variable, function, class, or package, for example. In this book, the words symbol, name, variable, and identifier are used interchangeably.
This chapter will show you how to construct...