Skip to content
Mon, Oct 12, 2026 / Ideas for a clearer worldINDEPENDENT INSIGHTS · PRACTICAL TOOLS · EXPLAINERS
Sign in
Compiler Design / July 20, 2021

Declarations

When we encounter declarations, we need to lay out storage for the declared variables. For every local name in a procedure, we create a ST(Symbol Table) entry containing: The type of the name How much storage the name requires The production: 1.      D →    integer, id   2.         D  →   real, id   3.         D  →   D1, id   A suitable transition scheme for declarations would be: Production rule Semantic […]

When we encounter declarations, we need to lay out storage for the declared variables.

For every local name in a procedure, we create a ST(Symbol Table) entry containing:

  1. The type of the name
  2. How much storage the name requires

The production:

1.      D →    integer, id  

2.         D  →   real, id  

3.         D  →   D1, id  

A suitable transition scheme for declarations would be:

Production ruleSemantic action
D → integer, idENTER (id.PLACE, integer)
  D.ATTR = integer
D → real, idENTER (id.PLACE, real)
  D.ATTR = real
D → D1, idENTER (id.PLACE, D1.ATTR)
  D.ATTR = D1.ATTR

ENTER is used to make the entry into symbol table and ATTR is used to trace the data type.