
The Chomsky hierarchy in the fields of formal language theory, computer science, and linguistics, is a containment hierarchy of classes of formal grammars. A formal grammar describes how to form strings from a formal language's alphabet that are valid according to the language's syntax. The linguist Noam Chomsky theorized that four different classes of formal grammars existed that could generate increasingly complex languages. Each class can also completely generate the language of all inferior classes (set inclusive).
History
The general idea of a hierarchy of grammars was first described by Noam Chomsky in "Three models for the description of language" during the formalization of transformational-generative grammar (TGG).[1]Marcel-Paul Schützenberger also played a role in the development of the theory of formal languages; the paper "The algebraic theory of context free languages"[2] describes the modern hierarchy, including context-free grammars.[3]
Independently, alongside linguists, mathematicians were developing models of computation (via automata). Parsing a sentence in a language is similar to computation, and the grammars described by Chomsky proved to both resemble and be equivalent in computational power to various machine models.[4]
The hierarchy
The following table summarizes each of Chomsky's four types of grammars, the class of language it generates, the type of automaton that recognizes it, and the form its rules must have. The classes are defined by the constraints on the productions rules.
- ↑Meaning of symbols:
- = terminal
- , = non-terminal
- , , = string of terminals and/or non-terminals
Cabe señalar que el conjunto de gramáticas correspondientes a lenguajes recursivos no pertenece a esta jerarquía; estas se encontrarían propiamente entre el Tipo 0 y el Tipo 1.
Todo lenguaje regular es libre de contexto, todo lenguaje libre de contexto es sensible al contexto, todo lenguaje sensible al contexto es recursivo y todo lenguaje recursivo es recursivamente enumerable. Todas estas son inclusiones propias, lo que significa que existen lenguajes recursivamente enumerables que no son sensibles al contexto, lenguajes sensibles al contexto que no son libres de contexto y lenguajes libres de contexto que no son regulares. [ 7 ]
Gramáticas regulares (tipo 3)
Las gramáticas de tipo 3 generan los lenguajes regulares . Dicha gramática restringe sus reglas a un único no terminal en el lado izquierdo y un lado derecho que consta de un único terminal, posiblemente seguido de un único no terminal, en cuyo caso la gramática es regular por la derecha . Alternativamente, todas las reglas pueden tener sus lados derechos consistiendo en un único terminal, posiblemente precedido por un único no terminal ( regular por la izquierda ). Estas generan los mismos lenguajes. Sin embargo, si se combinan reglas regulares por la izquierda y reglas regulares por la derecha, el lenguaje ya no tiene por qué ser regular. La reglaTambién está permitido aquí siNo aparece en el lado derecho de ninguna regla. Estos lenguajes son precisamente todos los lenguajes que puede determinar un autómata de estados finitos . Además, esta familia de lenguajes formales se puede obtener mediante expresiones regulares . Los lenguajes regulares se utilizan comúnmente para definir patrones de búsqueda y la estructura léxica de los lenguajes de programación.
Por ejemplo, el lenguaje regulares generado por la gramática de tipo 3con las produccionessiendo lo siguiente.
- S → aS
- S → a
En lingüística , un lenguaje que no es regular se denomina supraregular . [ 8 ] [ 9 ]
Gramáticas libres de contexto (tipo 2)
Las gramáticas de tipo 2 generan los lenguajes libres de contexto . Estos se definen mediante reglas de la formaconser un no terminal ysiendo una cadena de terminales y/o no terminales. Estos lenguajes son exactamente todos los lenguajes que puede reconocer un autómata de pila no determinista . Los lenguajes libres de contexto —o más bien su subconjunto de lenguajes libres de contexto deterministas— son la base teórica de la estructura de frases de la mayoría de los lenguajes de programación , aunque su análisis semántico incluye la resolución de nombres sensible al contexto debido a las declaraciones y el ámbito . A menudo se utiliza un subconjunto de gramáticas para facilitar el análisis sintáctico, como por ejemplo mediante un analizador LL .
Por ejemplo, el lenguaje libre de contexto es generado por la gramática de tipo 2con las produccionessiendo lo siguiente.
- S → aSb
- S → ab
El lenguaje es libre de contexto pero no regular (según el lema de bombeo para lenguajes regulares ).
Todo lenguaje libre de contexto puede generarse mediante una gramática en forma normal de Chomsky .
Gramáticas sensibles al contexto (Tipo 1)
Las gramáticas de tipo 1 generan lenguajes sensibles al contexto . Estas gramáticas tienen reglas de la formaconun no terminal y,ycadenas de terminales y/o no terminales. Las cadenasypuede estar vacío, perodebe no estar vacío. La reglaestá permitido siNo aparece en el lado derecho de ninguna regla. Los lenguajes descritos por estas gramáticas son precisamente todos los lenguajes que puede reconocer un autómata lineal acotado (una máquina de Turing no determinista cuya cinta está limitada por una constante multiplicada por la longitud de la entrada).
Por ejemplo, el lenguaje sensible al contexto es generado por la gramática de tipo 1con las produccionessiendo lo siguiente.
- S → aBC
- S → aSBC
- CB → CZ
- CZ → WZ
- WZ → WC
- WC → BC
- aB → ab
- bB → bb
- bC → bc
- cC → cc
El lenguaje es sensible al contexto pero no libre de contexto (por el lema de bombeo para lenguajes libres de contexto ). Una prueba de que esta gramática generase esboza en el artículo sobre gramáticas sensibles al contexto .
Gramáticas recursivamente enumerables (Tipo 0)
Las gramáticas de tipo 0 incluyen todas las gramáticas formales. No hay restricciones en las reglas de producción. Generan exactamente todos los lenguajes que pueden ser reconocidos por una máquina de Turing , por lo que cualquier lenguaje que sea posible generar puede ser generado por una gramática de tipo 0. [ 10 ] Estos lenguajes también se conocen como lenguajes recursivamente enumerables o reconocibles por Turing . [ 10 ] Nótese que esto es diferente de los lenguajes recursivos , que pueden ser decididos por una máquina de Turing que siempre se detiene .
Lenguajes naturales
Al investigar la posición del lenguaje natural en la jerarquía de Chomsky, se demostró en la década de 1950 que el lenguaje natural no es regular. [ 11 ] Por ejemplo, el inglés contiene construcciones de incrustación central , lo que significa que no puede ser regular. [ 8 ] [ 9 ] Para ser más exactos, el argumento es que el lenguaje
no es regular, lo cual se puede demostrar utilizando el lema de bombeo para lenguajes libres de contexto . En décadas posteriores, se demostró que el lenguaje natural tampoco es libre de contexto, utilizando el ejemplo de dependencias seriales cruzadas en alemán suizo . [ 12 ] [ 13 ] En este caso, el argumento es que el lenguaje
no es independiente del contexto.
Citas
- ↑ Chomsky 1956 .
- ↑ Chomsky y Schützenberger 1963 .
- ↑ Allott, Nicholas; Lohndal, Terje; Rey, Georges (27 de abril de 2021). «Introducción sinóptica». A Companion to Chomsky . págs. 1–17 . doi : 10.1002/9781119598732.ch1 . ISBN 9781119598701. S2CID 241301126 .
- ↑ Kozen, Dexter C. (2007). Autómatas y computabilidad . Textos de pregrado en informática. Springer. págs. 3–4 . ISBN 978-0-387-94907-9.
- ↑ Geuvers, H.; Rot, J. (2016). "Aplicaciones, jerarquía de Chomsky y Recap" (PDF) . Regular Languages . Archivado (PDF) del original el 19 de noviembre de 2018.
- ↑ Sudkamp, Thomas A. (1997) [1988]. Lenguajes y máquinas: Una introducción a la teoría de la informática . Reading, Massachusetts, EE. UU.: Addison Wesley Longman. pág. 310. ISBN 978-0-201-82136-9.
- ↑ Chomsky, Noam (1963). «Capítulo 12: Propiedades formales de las gramáticas». En Luce, R. Duncan; Bush, Robert R.; Galanter, Eugene (eds.). Manual de psicología matemática . Vol. II. John Wiley and Sons, Inc. pp. 323–418 .
- 1 2 Jäger, Gerhard; Rogers, James (2012). "Teoría del lenguaje formal: refinando la jerarquía de Chomsky" . Philosophical Transactions of the Royal Society B. 367 : 1956–1970 . doi : 10.1098 /rstb.2012.00777 .
- 1 2 Fitch, W. Tecumseh; Friederici, Angela D. (2012). "El aprendizaje de la gramática artificial se encuentra con la teoría del lenguaje formal: una visión general" . Philosophical Transactions of the Royal Society B. 367 : 1933–1955 . doi : 10.1098 /rstb.2012.0103 .
- 1 2 Sipser, Michael (1997). Introducción a la teoría de la computación (1.ª ed.). Cengage Learning. pág . 130. ISBN 0-534-94728-XLa
tesis de Church-Turing
- ↑ Chomsky, Noam (1957). Estructuras sintácticas . Mouton & Co.
- ^ Huijbregts, Riny (1984). "La débil insuficiencia de las gramáticas de estructura de frases libres de contexto". En de Haan, Geer; Trommele, Mieke; Zonnefeld, Wim (eds.). Van Periferie a Kern . Foris. págs. 81 a 99.
- ↑ Shieber, Stuart M. (1985). "Evidencia en contra de la independencia de contexto del lenguaje natural" . Lingüística y Filosofía . 8 : 333–343 . doi : 10.1007/BF00630917 .
Referencias
- Chomsky, Noam (1956). "Tres modelos para la descripción del lenguaje" ( PDF) . IRE Transactions on Information Theory . 2 (3): 113– 124. doi : 10.1109/TIT.1956.1056813 . S2CID 19519474. Archivado (PDF) del original el 7 de marzo de 2016.
- Chomsky, Noam (1959). "Sobre ciertas propiedades formales de las gramáticas" (PDF) . Information and Control . 2 (2): 137– 167. doi : 10.1016/S0019-9958(59)90362-6 .
- Chomsky, Noam ; Schützenberger, Marcel P. (1963). «La teoría algebraica de los lenguajes libres de contexto». En Braffort, P.; Hirschberg, D. (eds.). Programación de computadoras y sistemas formales (PDF) . Ámsterdam: North Holland. pp. 118–161 . Archivado (PDF) del original el 13 de junio de 2011.
- 1956 en informática
- Lenguajes formales
- Lingüística generativa
- Noam Chomsky