Consider the following grammar (that admits a series of declarations, followed by expressions) and the associated syntax directed translation (SDT) actions, given as pseudo-code:

P → D* E*

D → int ID {record that ID.lexeme is of type int}

D → bool ID { record that ID.lexeme is of type bool}

E → E1 + E2 {check that E1.type = E2.type = int; set E.type := int}

E → !E1 {check that E1.type = bool; set E.type := bool}

E → ID {set E.type := int}

With respect to the above grammar; which one of the following choices is not correct?

1
The actions will lead to infinite loop.
2
 The actions can be used to correctly type-check any syntactically correct program.
3
The actions can be used to type-check syntactically correct integer variable declarations and integer expressions.
4
The actions can be used to type-check syntactically correct boolean variable declarations and boolean expressions.

Sponsored

hivanix.in

Visit

This quiz is brought to you by hivanix.in

🌐 Web App Development

Quick Navigation