CFG to CNF conversion steps I could find that different texts follow different steps in the conversion of CFG to Chomsky Normal Form. I couldn't find any presumptions they made in the conversion steps. I have some questions regarding the conversion.


Most text books tell us about only two rules $A \rightarrow BC$ and $A \rightarrow a$. But some texts say that starting productions should not be in the right hand side. Why some stress on that rule and others not?
When talking about the rules some don't stress much on the condition of removing useless symbols. Is this condition mandatory or not?
Which is the best rule? Remove useless production, remove $\epsilon$ production, remove unit production, adjust the resulting productions so as to reflect the CNF rules. 
Converting a grammar to Greibach normal form requires first converting the productions to Chomsky Normal Form?
1.-The definition that my teacher told me about CNF: It is a context-free language whose productions are from two types:

Type 1: A−>a|A∈N,a∈Σ

Type 2: A−>BC|A,B,C∈N

Nothing less and nothing more.

2.-You can always simplify a CFL but that is not necessary. At least from a theorycal point of view.

3.-    There isn't best rule. Remove useless production is just a way you can polish your CFL.

It is important to notice that when you have ϵ productions you don't meet the requirements for a context-free grammar so you can't make the conversion to CNF. If you eliminate those productions you are generating a CFG very similar to the original grammar but not equivalent . They denote different languajes although the differences can be considered trivial.

Then you mention "remove unit productions" and "adjust resulting productions" this are the steps of the algorithm to convert a CFG in a CNF.

Polish the grammar could be mandatory in a practical context.

4.- I still don't know anything about Greibach normal form so good luck!