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, 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 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