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 rule Semantic action
D → integer, id ENTER (id.PLACE, integer)
  D.ATTR = integer
D → real, id ENTER (id.PLACE, real)
  D.ATTR = real
D → D1, id ENTER (id.PLACE, D1.ATTR)

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

Related Posts

© 2024 Basic Computer Science - Theme by WPEnjoy · Powered by WordPress