www.vustudents.ning.com

CS606 Compiler Construction Assignment#02 Solution & Discussion Due Date:16-11-2011

Question # 1:

Consider the following Grammar and remove the left-factoring from it.

A  xByA/xByAzA/a

B  b

Question # 2:

Consider the following CFG.

statement--> variable ASSIGNOP expr

| procedure_call

| block

| IFTOK expr THENTOK statement ELSETOK statement

| WHILETOK expr DOTOK statement

Three of the productions for statement begin with non-terminals:

variable--> ID | ID LBRK expr RBRK

procedure_call--> ID | ID LPAR expr_list RPAR

block--> BEGINTOK opt_statements ENDTOK

No remove the left factoring from the given grammar.

Views: 283

Replies to This Discussion

See the attached file for CS606 Assignment#02 Fall 2011

Attachments:

Assignment Statements:

Question # 1:

Consider the following Grammar and remove the left-factoring from it.

A  xByA/xByAzA/a

B  b

Solution

A  xA'/xA'zA/a

A'  ByA

Now

A  xA'/xA'zA/a

A  B'/B'zA/a

B' xA'

B  b

Question # 2:

Consider the following CFG.

statement--> variable ASSIGNOP expr

| procedure_call

| block

| IFTOK expr THENTOK statement ELSETOK statement

| WHILETOK expr DOTOK statement

Three of the productions for statement begin with non-terminals:

variable--> ID | ID LBRK expr RBRK

procedure_call--> ID | ID LPAR expr_list RPAR

block--> BEGINTOK opt_statements ENDTOK

No remove the left factoring from the given grammar.

Solution

In the productions for statement we replace nonterminals:

variable, procedure_call, and block, by the right-sides of their

productions to obtain:

statement--> ID ASSIGNOP expr

| ID LBRK expr RBRK ASSIGNOP expr

| ID

| ID LPAR expr_list RPAR

| BEGINTOK opt_statements ENDTOK

| IFTOK expr THENTOK statement ELSETOK statement

| WHILETOK expr DOTOK statement

Now every production for statement begins with a terminal but

four of the productions begin with the same terminal, ID, so we add a

new nonterminal, statement_rest, to the grammar and left factor ID

out of those four productions to obtain:

statement--> ID statement_rest

| BEGINTOK opt_statements ENDTOK

| IFTOK expr THENTOK statement ELSETOK statement

| WHILETOK expr DOTOK

statement statement_rest--> ASSIGNOP expr

| LBRK expr RBRK ASSIGNOP expr

| LPAR expr_list RPAR

| e

one more idea solution of CS606 assignment#02 fall 2011

Attachments:

1

2

3

4

5

Latest Activity

34 minutes ago
34 minutes ago
amu khan and ༺If͢͢͢ℝⱥհ ᴬnѕαℝ༻ are now friends
2 hours ago
3 hours ago
Naser Javed (BBIT) liked + ! + +Maho's discussion Have a blessed Ramzan
4 hours ago
7 hours ago
Latif replied to + ! + +Maho's discussion Have a blessed Ramzan
7 hours ago