A hierarquia de Chomsky (–Schützenberger) é usada em livros didáticos de ciência da computação, mas obviamente cobre apenas uma fração muito pequena de linguagens formais (REG, CFL, CSL, RE) em comparação com o Diagrama de Zoológico de Complexidade completo . A hierarquia tem mais algum papel na pesquisa atual? Encontrei poucas referências a Chomsky aqui em cstheory.stackexchange, e no Complexity Zoo os nomes Chomsky e Schützenberger não são mencionados.
A pesquisa atual está mais focada em outros meios de descrição, exceto gramáticas formais? Eu estava procurando por métodos práticos para descrever linguagens formais com expressividade diferente, e me deparei com a crescente linguagem sensível ao contexto (GCSL) e linguagens visivelmente pushdown (VPL), que estão entre as linguagens clássicas de Chomsky. A hierarquia de Chomsky não deve ser atualizada para incluí-los? Ou não adianta selecionar uma hierarquia específica do conjunto completo de classes de complexidade? Tentei selecionar apenas os idiomas que podem caber nas lacunas da hierarquia de Chomsky, tanto quanto eu entendo:
REG (= Chomsky 3) ⊊ VPL ⊊ DCFL ⊊ CFL (= Chomsky 2) ⊊ GCSL ⊊ CSL (= Chomsky 1) ⊊ R ⊊ RE
Ainda não entendo onde "linguagens levemente sensíveis ao contexto" e "linguagens indexadas" se encaixam (em algum lugar entre CFL e CSL), embora pareça haver relevância prática para o processamento de linguagem natural (mas talvez algo de relevância prática seja menos interessante em pesquisa teórica ;-). Além disso, você pode mencionar GCSL ⊊ P ⊂ NP ⊂ PSPACE e CSL ⊊ PSPACE ⊊ R para mostrar a relação com as famosas classes P e NP.
Encontrei no GCSL e no VPL:
- Robert McNaughton: Uma inserção na hierarquia de Chomsky ?. In: Jewels are Forever, Contribuições em ciência da computação teórica em homenagem a Arto Salomaa. S. 204-212, 1999
- http://en.wikipedia.org/wiki/Nested_word#References (VPL)
Eu também ficaria feliz se você souber de algum livro mais recente sobre gramáticas formais que também lide com VPL, DCLF, GCSL e gramáticas indexadas, preferível com ponteiros para aplicações práticas.
Respostas:
Pelo que vi na comunidade de Processamento de linguagem natural, as gramáticas formais à la Chomsky não são mais usadas. Eles (também) pensam que a Hierarquia de Chomsky está desatualizada para modelar a linguagem.
O que aconteceu foi o de reescrever a regra (o algoritmo de Lars), modelos de dependência (Dan Klein), gramática de substituição de árvores (o modelo DOP), gramáticas de recursos binários (Alex Clark).
fonte
Em resumo: sim.
Mais particularmente: Chomsky foi um dos primeiros a formalizar uma hierarquia relacionando idiomas, gramáticas e autômatos. Esse insight ainda é muito relevante e é ministrado em todos os cursos de introdução à teoria dos autômatos. No entanto, a hierarquia específica que Chomsky criou e os nomes dos elementos da hierarquia não são mais significativos. Desde então, inventamos numerosos formalismos que se situam entre os níveis da hierarquia de Chomsky, acima ou abaixo dela. E os nomes que Chomsky usou não são particularmente interessantes, ou seja, não são baseados em uma medida interessante de complexidade ou qualquer coisa, são apenas números. As linguagens levemente sensíveis ao contexto devem ser do tipo 1.5 ou do tipo 1.7 ou do tipo 1.3? Quem se importa. "Ligeiramente sensível ao contexto" é um nome muito mais informativo.
O Zoológico de Complexidade é um pouco diferente porque está cheio de todos os tipos de equivalências condicionais e similares. Uma hierarquia mais moderna para a teoria dos autômatos não seria linear (por exemplo, compare CFG x PEG), mas ainda assim teria uma topologia conhecida. Para ter uma perspectiva da teoria moderna dos autômatos, você deve examinar o trabalho nas bibliotecas combinadoras do analisador e algumas coisas sobre a unificação e a teoria dos tipos (embora as duas se ramifiquem muito longe).
fonte
Se alguma coisa no TCS está desatualizada, é essa hierarquia de inclusão do minúsculo subconjunto de classes de complexidade que passou a ser conhecido / considerado interessante em 1956.
Descanse em paz, Hierarquia de Chomsky, e você não deve mais assombrar o currículo da teoria da graduação.
fonte
Se você considerar a Hierarquia de Chomsky com nomes "modernos" (por exemplo, REG, LIN, CFL, CSL, RE ou DFA / NFA, PDA, LBA, TM), digo: Não, não está desatualizado!
Razão 0 : Ainda está correto no sentido de que suas definições e resultados não são contraditórios ao conhecimento mais recente.
Razão 1 : esses modelos de classes / computação ainda são os primeiros a serem ministrados - porque são simples e bem estudados. Tente ensinar o autômato de LR a um estudante de graduação sem primeiro cobrir o DFA / DPDA.
Razão 2 : As aulas ainda são os primeiros / principais parâmetros de referência para novas invenções (examinei um artigo sobre multi-CFGs que, é claro, dizia: mais que CFG, menos que CSG). Isso pode ser em parte porque eles são ensinados primeiro, mas também porque são simples e bem estudados.
Anti-Razão 3 : Os resultados não estão desatualizados apenas porque novas classes / modelos foram encontrados. Eles mantêm seu valor como básico do campo, apesar de não serem usados ativamente na fronteira de pesquisa.
fonte
Eu acho que depende do modelo de computação. Se você considerar o finito / pushdown / etc. autômatos como modelo de computação, a hierarquia de Chomsky se torna importante (ver, por exemplo, o livro de Sipser). Por outro lado, desempenha pouco papel no modelo de computação de Turing.
A ilustração a seguir pode ser útil:
Editar: linguagens formais desempenham um papel importante no design de linguagens de computador (como Java) e compiladores, bem como no processamento de linguagem natural (PNL).
fonte