Compiler Design and Construction - Old Questions

3.  What are regular definitions? Given the following CFG,


Write the regular definitions for the terminals used. Also, construct the transition diagram for id and num.

6 marks | Asked in 2072

If  Σ is an alphabet of basic symbols, then a regular definition is a sequence of definition of the form

d1  r1

d2  r2

.....

dn  rn

where, di is a distinct name and ri is a regular expression over symbols in  Σ ∪ {d1, d2, ...., di-1}


Now,

Regular definitions for the terminals used in given grammar are:

digit → [0-9]
num → digit+(. digit+)?(E[+|-]? digit+)?
letter → [A-Za-z]
id → letter ( letter | digit )*
if → if
then → then
else → else
relop → < | > | <= | >= | = | <>

Transition diagram for id:

trans dia id

Here 9, 10 & 11 are the name of states.

Transition diagram for num:

trans dia num