La jerarquía de Chomsky (–Schützenberger) se usa en los libros de texto de informática teórica, pero obviamente solo cubre una fracción muy pequeña de lenguajes formales (REG, CFL, CSL, RE) en comparación con el Diagrama completo del zoológico de complejidad . ¿La jerarquía juega algún papel en la investigación actual? Encontré pocas referencias a Chomsky aquí en cstheory.stackexchange, y en Complexity Zoo no se mencionan en absoluto los nombres de Chomsky y Schützenberger.
¿La investigación actual está más centrada en otros medios de descripción que las gramáticas formales? Estaba buscando métodos prácticos para describir lenguajes formales con diferente expresividad, y me topé con un lenguaje sensible al contexto creciente (GCSL) y lenguajes visiblemente pushdown (VPL), que se encuentran entre los idiomas clásicos de Chomsky. ¿No debería actualizarse la jerarquía de Chomsky para incluirlos? ¿O no tiene sentido seleccionar una jerarquía específica del conjunto completo de clases de complejidad? Intenté seleccionar solo aquellos idiomas que pueden encajar en los huecos de la jerarquía de Chomsky, por lo que entiendo:
REG (= Chomsky 3) ⊊ VPL ⊊ DCFL ⊊ CFL (= Chomsky 2) ⊊ GCSL ⊊ CSL (= Chomsky 1) ⊊ R ⊊ RE
Todavía no entiendo dónde encajan los "lenguajes ligeramente sensibles al contexto" y los "idiomas indexados" (en algún lugar entre CFL y CSL), aunque parece tener relevancia práctica para el procesamiento del lenguaje natural (pero tal vez cualquier cosa de relevancia práctica sea menos interesante en investigación teórica ;-). Además, puede mencionar GCSL ⊊ P ⊂ NP ⊂ PSPACE y CSL ⊊ PSPACE ⊊ R para mostrar la relación con las famosas clases P y NP.
Encontré en GCSL y VPL:
- Robert McNaughton: ¿Una inserción en la jerarquía de Chomsky? En: Las joyas son para siempre, contribuciones en informática teórica en honor de Arto Salomaa. S. 204-212, 1999
- http://en.wikipedia.org/wiki/Nested_word#References (VPL)
También estaría contento si conoces algún libro de texto más reciente sobre gramáticas formales que también se ocupen de VPL, DCLF, GCSL y gramáticas indexadas, preferiblemente con punteros a aplicaciones prácticas.
Respuestas:
Por lo que he visto en la comunidad de procesamiento del lenguaje natural, las gramáticas formales a la Chomsky ya no se usan tanto. Ellos (también) piensan que la Jerarquía de Chomsky está desactualizada para modelar el lenguaje.
Lo que tomó su lugar es cosas como la regla de reescritura (el algoritmo de Lars), los modelos de dependencia (Dan Klein), la gramática de sustitución de árboles (el modelo DOP), las gramáticas de características binarias (Alex Clark).
fuente
En resumen: sí.
Más particularmente: Chomsky fue uno de los primeros en formalizar una jerarquía relacionada con lenguajes, gramáticas y autómatas. Esta idea sigue siendo muy relevante y se enseña en todos los cursos de introducción a la teoría de autómatas. Sin embargo, surgió la jerarquía específica que Chomsky creó y los nombres de los elementos de la jerarquía ya no son realmente significativos. Desde entonces, hemos inventado numerosos formalismos que se encuentran entre los niveles de la jerarquía de Chomsky, por encima o por debajo. Y los nombres que usó Chomsky no son particularmente interesantes, es decir, no se basan en una medida interesante de complejidad ni nada, son solo números. ¿Deben los lenguajes ligeramente sensibles al contexto ser Tipo-1.5 o Tipo-1.7 o Tipo-1.3? A quien le importa. "Ligeramente sensible al contexto" es un nombre mucho más informativo.
Complexity Zoo es un poco diferente porque está lleno de todo tipo de equivalencias condicionales y similares. Una jerarquía más moderna para la teoría de autómatas no sería lineal (por ejemplo, comparar CFG frente a PEG), pero aún tendría una topología bien conocida. Para obtener una perspectiva sobre la teoría moderna de autómatas, debe mirar el trabajo en las bibliotecas de combinador de analizadores y algunas de las cosas sobre la unificación y la teoría de tipos (aunque ambas se extienden mucho más allá).
fuente
Si algo en TCS está desactualizado, es esta jerarquía de inclusión del pequeño subconjunto de clases de complejidad que resultó ser conocida / considerada interesante en 1956.
Descansa en paz, Jerarquía Chomsky, y que ya no persigas el plan de estudios de teoría de pregrado.
fuente
Si considera la Jerarquía de Chomsky con nombres "modernos" (es decir, REG, LIN, CFL, CSL, RE resp. DFA / NFA, PDA, LBA, TM), le digo: ¡No, no está desactualizado!
Motivo 0 : sigue siendo correcto en el sentido de que sus definiciones y resultados no son contradictorios con los conocimientos más recientes.
Razón 1 : Estas clases / modelos de cálculo siguen siendo los primeros que enseña, porque son simples y están bien estudiados. Intente enseñar autómata LR a un estudiante sin cubrir primero DFA / DPDA.
Razón 2 : Las clases siguen siendo los primeros / principales puntos de referencia para nuevos inventos (leí un artículo sobre múltiples CFG que, por supuesto, dijo: más que CFG, menos que CSG). Eso puede deberse en parte a que se les enseña primero, pero también a que son simples y bien estudiados.
Anti-Razón 3 : Los resultados no son obsoletos solo porque se han encontrado nuevas clases / modelos. Mantienen su valor como conceptos básicos del campo a pesar de que no se utilizan activamente en la frontera de la investigación.
fuente
Creo que depende del modelo de computación. Si considera el finito / pushdown / etc. autómatas como modelo de cálculo, luego la jerarquía de Chomsky se vuelve importante (ver, por ejemplo, el libro de Sipser). Por otro lado, juega un pequeño papel en el modelo de computación de Turing.
La siguiente ilustración puede ser útil:
Editar: Los lenguajes formales juegan un papel importante en el diseño de lenguajes de computadora (como Java) y compiladores, así como en el procesamiento del lenguaje natural (PNL).
fuente