La forme normale porte le nom de Sige-Yuki Kuroda, qui appelait ces grammaires des grammaires linéaires bornées — une terminologie qui a également été utilisée par d'autres auteurs par la suite[3].
Une grammaire sous forme normale de Kuroda est non contractante et engendre donc un langage contextuel. Inversement, tout langage contextuel qui n'engendre pas la chaîne vide peut être engendré par une grammaire en forme normale de Kuroda[2].
Une technique simple, attribuée à György Révész, pour mettre une grammaire quadratique de Chomsky en forme de Kuroda est la suivante : une règle est remplacée par quatre règles contextuelles , , et . Cette technique donne également une preuve de ce que toute grammaire non contractante est sensible au contexte[1].
Il existe également une forme normale similaire pour les grammaires non expansive, et que certains auteurs appellent également la « forme normale de Kuroda »[4] . Les règles sont alors :
où est la chaîne vide. Toute grammaire générale est faiblement équivalente à une grammaire utilisant uniquement des productions de cette forme[2]. Si la règle est omise dans ce qui précède, on obtient des langages context-free[4].
La forme normale de Penttonen (pour les grammaires générales) est le cas particulier où la première règle ci-dessus est de la forme [4]. De même, pour les grammaires contextuelles, la forme normale de Penttonen, également appelée forme normale unilatère selon la propre terminologie de Penttonen est[1],[2] la suivante :
Pour toute grammaire contextuelle, il existe une forme normale unilatère faiblement équivalente[2].
↑ abc et dMasami Ito, Yūji Kobayashi et Kunitaka Shoji, Automata, Formal Languages and Algebraic Systems: Proceedings of AFLAS 2008, Kyoto, Japan, 20-22 September 2008, World Scientific, (ISBN978-981-4317-60-3, présentation en ligne), p. 182
↑ abcd et eAlexandru Mateescu et Arto Salomaa, « Chapter 4 : Aspects of Classical Language Theory », dans Handbook of Formal Languages. Volume I: Word, language, grammar, Springer-Verlag, (ISBN978-3-540-61486-9), p. 190.
↑Willem J. M. Levelt, An Introduction to the Theory of Formal Languages and Automata, John Benjamins Publishing, (ISBN978-90-272-3250-2, lire en ligne), p. 126–127.
↑ ab et cAlexander Meduna, Automata and Languages: Theory and Applications, Springer Science & Business Media, (ISBN978-1-85233-074-3, lire en ligne), p. 722-728.
Martti Penttonen, « One-sided and two-sided context in formal grammars », Information and Control, vol. 25, no 4, , p. 371–392 (DOI10.1016/S0019-9958(74)91049-3)
Chaque classe de langages est strictement contenue dans la classe immédiatement au-dessus d'elle. Chaque automate et chaque grammaire d'une classe ont un équivalent dans la classe immédiatement au-dessus.