Вы находитесь на странице: 1из 6

ASSIGNMENT IN 204 (MR.

WILFRED PAGOROGON)

TO BE SUBMITTED AS E-MAIL ATTACHMENT ON OR BEFORE DEC. 29.


< assign > ->
< id >
< expr > ->

< id >
= < expr >
->
A|B|C
< id > + < expr >
| < id > *< expr >
| (< expr >)
| < id >
Usi ng the grammar above show a derivation and a parse three for each of
the ff.
A. A= A*(B*(C*A))
B. B=C*(A*C+B)
Answer:
A. A = A* (B+(C*A))
<assign> -> <id> = <expr>
->A=<expr>
-> A= <id> * <expr>
-> A= A* <expr>
-> A= A*( <expr> )
-> A= A *(<id> +<expr>)
-> A =A* (B+ <expr> )
-> A= A
*(B+(<expr>))
->A=A*(B + (<id>*<expr>))
-> A=A*(B + (C * <expr>))
-> A=A*(B + (C * <id>))
->A=A*(B+(C*A))
Parse three:
<assign>
/
\
<id> <expr>
|
/
\
A
<id> <expr>
|
|
A
(<expr>)
/
\
<id> <expr>
|
|
C
<id>
|
A

B. B= C * (A* C +B)
<assign> -> <id> = <expr>
->B= <expr>
->B=<id> * <xpr>
->B=C * <expr>
->B=C *(<expr>)
->B=C *( <id> *<expr> )
->B=C * (A * <expr> )
->B+C *(A * <id> + <expr>)
->B =C *( A * C + <expr>)
->B=C *(A *C +<id>)
->B=C * (A * C +B )
Parse three:
<assign>
/
\
<id> <expr>
|
/
\
B <id> <expr>
|
|
C
(<expr>)
/
\
<id> <expr>
|
/
\
A <id>
<expr>
|
C

<id>
|
B

TEST B.
<assign>
<id>
<expr>
<term>
<factor.

-> <id> - < expr>


-> A | B | C
-> <expr> + <term>
| <term>
-> <term> * <factor>
| <fator>
-> (<expr>)
| <id>

Using the grammar above show a leftmost derivation & parse three for
each of the ff. statement.
A. A=(A+B) *C
<assign>
-> <id> = <expr>
-> A=<expr.
->A =<term>
->A=<term> * <factor>
->A=<factor> * <factor>
->A= ( <expr> ) * <factor>
->A=(<expr> + <term> ) * <factor>
->A=(<term> + <term>) * <factor>
->A=(<factor> + <term>) * <factor>
->A_(<id) + <term> ) * <factor>
->A= (A +<term>) * <factor>
->A=(A +<factor>) * <factor>
->A=(A + <id> ) * <factor>
->A =(A +B) * <factor>
->A=(A +B) * <id>
->A= (A + B) * C
Parse three:
<assign>
/
A

\
<expr>
|
<term>
/
\
<term> <factor>
|
|
<factor> <id>
|
|
(<expr>)
C
/
\
<expr> <term>
|
|
<term> <factor>
|
|
<factor>
<id>
|
|
<id>
B
|
A

B. A=B + C + A
<assign> -> <id> = <xpr>
->A = <expr>
->A= <expr> + <term>
->A = <expr> + <term> + <term>
->A = <term> + <term> + <term>
->A = <factor> + <term> + <term>
->A= <id> + <term> + <term>
->A = B + <factor> + <term>
->A = B + <id> + <term>
->A = B + C + <term>
->A= B + C + <factor>
->A= B + C + <id>
->A= B + C + A
Parse three:
<assing>
/
\
<id>
<expr>
|
/
\
A <expr>
<term>
/

|
<expr> <term>
<factor>
|

|
<term> <factor>
<id>
|

|
<factor> <id>
A
|
<id>
|
B
C. A= A * (B + C)
<assign> -> <id> = <expr>
->A = <expr>
-.A = <term>

|
C

->A
->A
->A
->A
->A
->A
->A
->A
->A
->A
->A
->A
->A

=
=
=
=
=
=
=
=
=
+
=
=
=

<term> * <factor>
<factor> * <factor>
<id> * <factor>
A * <factor>
A * <expr>
A *(<expr> + <term>)
A *( <term> + <term>)
A *(<factor> + <term>)
A * (<id> + <term>)
A * (B + <term>)
A * ( B + <factor>)
A * (B + <id>)
A * (B + C)

Parse three:
<assign>
/
<id>
|
A

\
<expr>
|
<term>
/
\
<term> <factor>
|
|
<factor> (<expr>)
|
/
\
<id> <expr>

<term>
|
A

|
<term>

|
<factor>

|
<id>
|
B

<factor>

<id>
C

Вам также может понравиться