Kuroda Normal Form
   HOME

TheInfoList



OR:

In formal language theory, a context-sensitive grammar is in Kuroda normal form if all production rules are of the form: :''AB'' → ''CD'' or :''A'' → ''BC'' or :''A'' → ''B'' or :''A'' → ''a'' where A, B, C and D are nonterminal symbols and ''a'' is a terminal symbol. Some sources omit the ''A'' → ''B'' pattern. It is named after Sige-Yuki Kuroda, who originally called it a linear bounded grammar—a terminology that was also used by a few other authors thereafter. Every grammar in Kuroda normal form is noncontracting grammar, noncontracting, and therefore, generates a context-sensitive language. Conversely, every context-sensitive language which does not generate the empty string can be generated by a grammar in Kuroda normal form. A straightforward technique attributed to György Révész transforms a grammar in Kuroda's form to Chomsky's CSG: ''AB'' → ''CD'' is replaced by four context-sensitive rules ''AB'' → ''AZ'', ''AZ'' → ''WZ'', ''WZ'' → ''WD'' and ''WD'' → ''CD''. This technique also proves that every noncontracting grammar is context-sensitive. There is a similar normal form for unrestricted grammars as well, which at least some authors call "Kuroda normal form" too: :''AB'' → ''CD'' or :''A'' → ''BC'' or :''A'' → ''a'' or :''A'' → ''ε'' where ε is the empty string. Every unrestricted grammar is weak equivalence (formal languages), weakly equivalent to one using only productions of this form. If the rule AB → CD is eliminated from the above, then one obtains context-free languages. The Penttonen normal form (for unrestricted grammars) is a special case where first rule above is ''AB'' → ''AD''. Similarly, for context-sensitive grammars, the Penttonen normal form, also called the one-sided normal form (following Penttonen's own terminology) is: :''AB'' → ''AD'' or :''A'' → ''BC'' or :''A'' → ''a'' For every context-sensitive grammar, there exists a weakly equivalent one-sided normal form.


See also

*Backus–Naur form *Chomsky normal form *Greibach normal form


References


Further reading

* * G. Révész, "Comment on the paper 'Error detection in formal languages,'" Journal of Computer and System Sciences, vol. 8, no. 2, pp. 238–242, Apr. 1974. (Révész' trick) * {{Formal languages and grammars, state=collapsed Formal languages