Question 1 (2006)
a) Well my attempt at the FA
Please read comment bellow by louisrdev. Agreed.
Now the translation:
S -> aM | bN
M -> aO | bO | /\ (a ending)
O -> aQ | bM
Q -> aO | bO
N -> aP | bP | /\ (b ending)
P -> bR | aN
R -> aP | bP
and of course it could be made tidy, but why waste the time. It does what it does. I think!
b)Convert
S -> Xa | Y
X -> aS | aY | bbb | bx
Y -> bY | /\ | a
to CNF
i) boot the /\
S -> Xa | Y
X -> aS | aY | bbb | bx
Y -> bY | b | a <-
ii) kill unit productions
S -> Xa | bY | b | a <-
X -> aS | aY | bbb | bX | a
Y -> bY | b | a
iii) Terminals
S -> XA | BY | b | a <-
X -> AS | AY | BBB | BX | a <-
Y -> BY | b | b <-
B -> b
A -> a
iv) No CNF
S -> XA | BY | b | a
X -> AS | AY | MB | BX | a <-
Y -> BY | b | a
M -> BB
B -> b
A -> a