KEMBAR78
Symbol Table | PDF | Object Oriented Programming | Computer Data
0% found this document useful (0 votes)
12 views3 pages

Symbol Table

The symbol table is a crucial data structure in compilers that stores information about variable names and their attributes, allowing for quick data retrieval. It is utilized during both the analysis and synthesis phases of compilation to manage entities such as variables, functions, and their scopes. Symbol-table entries are created by components like the lexical analyzer and are essential for tasks like type checking and verifying variable declarations.

Uploaded by

nikhilmishra1710
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views3 pages

Symbol Table

The symbol table is a crucial data structure in compilers that stores information about variable names and their attributes, allowing for quick data retrieval. It is utilized during both the analysis and synthesis phases of compilation to manage entities such as variables, functions, and their scopes. Symbol-table entries are created by components like the lexical analyzer and are essential for tasks like type checking and verifying variable declarations.

Uploaded by

nikhilmishra1710
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Symbol table

The symbol table is a data structure containing a record for each variable name,
with fields for the attributes of the name. The data structure should be designed
to allow the compiler to find the record for each name quickly and to store or
retrieve data from that record quickly.

➢ Symbol table is an important data structure which is used in a compiler.


➢ The information is collected incrementally by the analysis phases of a
compiler and used by the synthesis phases to generate the target code.
➢ Symbol table is used to store the information about the occurrence of
various entities such as objects, classes, variable name, interface, function
name etc.
➢ it is used by both the analysis and synthesis phases.
➢ Entries in the symbol table contain information about an identifiers such as
its character string (or lexeme), its type, its position in storage, and any
other relevant information.

Example 1:

void main()
{
int ng;
}

S.No. Name Type Size Address Properties..


1. ng int 4 011011010 …………

Example 2:
extern double var(double a); // Declare an external function

double fun(int count) // Define a public function

{
double sum = 0.0;
for (int i = 1; i <= count; i++)
sum += var((double) i);
return sum;
}

Symbol table for the above code:

Symbol name Type Scope

var function, double extern

a double function parameter


fun function, double global
count int function parameter
sum double block local
i int for-loop statement

Who Creates Symbol-Table Entries?

Symbol-table entries are created and used during the analysis phase by the lexical
analyzer, the parser, and the semantic analyzer.

Phases of Compiler:
The uses of symbol table:

➢ It is used to store the name of all entities at a one place.


➢ It is used to verify if a variable has been declared or not.
➢ It is used to determine the scope of a name.
➢ It is used to implement type checking by verifying assignments and
expressions in the source code are semantically correct or not.

Format of symbol table to maintains the entries for each name.

<symbol name, type, attribute>

Example: static int ngtuto

Then it should store the entry such as

<ngtuto, int, static>

You might also like