I have a non-deterministic CFG that says
S-> aS | aB | bB | λ;
B-> bB | λ
And I'm asked to create a deterministic CFG from that. I understand why the given CFG is non-deterministic because it contains
S-> aS | aB | [...]
But I think what I'm confused is why in my book does it say that A->λ productions are not allowed? I can't think of any other way to keep the solution a deterministic CFG if λ is not allowed.
[EDIT] The book defines deterministic CFG
"To recognize the full set of context-free languages, we require a non-deterministic stack automaton. We saw that any NFA could be replaced by an equivalent DFA but we cannot do this in the case of non-deterministic stack automaton. It is our good fortune that practical programming languages can be adequately described by deterministic CFG"
"We said that in Type 1 grammars, the nonterminal on the left-hand side could be replaced by ε. Since these restrictions are cumulative as we go from one level of the hierarchy to the next, this implies that Type 2 grammars may not have productions of the form A-> ε. In fact, we will see many CFGs have such productions, we must allow such productions as exceptions to the Type-1 restriction." - Introduction to Compiler Construction by Thomas W. Parsons