La hiérarchie de Chomsky est-elle obsolète?

45

La hiérarchie de Chomsky (–Schützenberger) est utilisée dans les manuels d'informatique théorique, mais elle ne couvre évidemment qu'une très petite fraction des langages formels (REG, CFL, CSL, RE) par rapport au diagramme de complexité complet . La hiérarchie joue-t-elle un rôle dans la recherche actuelle? Je n'ai trouvé que peu de références à Chomsky ici sur cstheory.stackexchange, et dans le Complexity Zoo, les noms Chomsky et Schützenberger ne sont pas mentionnés du tout.

La recherche actuelle est-elle davantage axée sur d'autres moyens de description que sur les grammaires formelles? Je recherchais des méthodes pratiques pour décrire les langages formels avec une expressivité différente, et suis tombé sur un langage de plus en plus sensible au contexte (GCSL) et des langages de compression visible (VPL), qui se situent tous deux entre les langages classiques de Chomsky. La hiérarchie de Chomsky ne devrait-elle pas être mise à jour pour les inclure? Ou ne sert-on à rien de sélectionner une hiérarchie spécifique parmi l'ensemble des classes de complexité? J'ai essayé de ne sélectionner que les langues qui peuvent être adaptées aux lacunes de la hiérarchie de Chomsky, pour autant que je sache:

REG (= Chomsky 3) ⊊ VPL DCFL CFL (= Chomsky 2) GCSL CSL (= Chomsky 1) R ⊊ RE

Je ne comprends toujours pas où "les langages légèrement sensibles au contexte" et les "langages indexés" (entre le CFL et le CSL) entrent bien, bien qu'il semble y avoir un intérêt pratique pour le traitement du langage naturel (mais peut-être que tout intérêt pratique est moins intéressant en recherche théorique ;-). Vous pouvez également mentionner GCSL L P ⊂ NP ⊂ PSPACE et CSL PSPACE R pour montrer la relation entre les célèbres classes P et NP.

J'ai trouvé sur GCSL et VPL:

Je serais également heureux si vous connaissez un manuel plus récent sur les grammaires formelles qui traitent également de VPL, DCLF, GCSL et des grammaires indexées, de préférence avec des pointeurs sur des applications pratiques.

Jakob
la source
7
Un point mineur: je ne considère pas que l’absence des noms Chomsky et Schützenberger dans le Complexity Zoo ne prouve que «la hiérarchie de Chomsky est dépassée». La hiérarchie de Chomsky est une notion de la théorie du langage formel. Complexity Zoo est un site Web principalement consacré à la théorie de la complexité, bien qu'il contienne certaines notions de la théorie des langues formelles, telles que les langues sans contexte. Ce sont des domaines liés mais distincts. Ce serait obsolète s'il n'était pas mentionné dans un manuel de la théorie des langues formelles, mais je ne sais pas si c'est le cas.
Tsuyoshi Ito
7
Bon point, Tsuyoshi. Franchement, j'aimerais voir un "Zoo des langues officielles" avec de bonnes bases théoriques (références à des documents de recherche!) Mais aussi des ressources pratiques. Par exemple, il existe des dizaines de variantes de syntaxe de Backus-Naur-Form, ainsi que des variantes d'expressions régulières (certaines d'entre elles n'étant même pas régulières). En plus de la simple hiérarchie de Chomsky, il m’est difficile d’obtenir une image claire de l’état actuel de la recherche sur les langages formels.
Jakob
Vous pouvez également ajouter des langues sans étoiles strictement sous les langues normales. Ils sont comme des habitués mais sans la star de Kleene. Bien connu. Bien comporté.
Wren romano
Comme plusieurs réponses me l'ont montré, les grammaires formelles à la Chomsky sont une méthode historique pour décrire les langages formels, qui a atteint ses limites. Je cherche toujours un bon aperçu des grammaires formelles, qui ne sont pas axées sur la théorie de la complexité, mais merci pour toutes les références ultérieures! Je vais accepter la réponse de mgalle parce qu'il a moins de réputation jusqu'à présent.
Jakob
2
En informatique, la conception du langage informatique, la conception et la programmation de logiciels, les grammaires et les langages sans contexte, ainsi que les expressions régulières et les langages sont des équipements de travail de base et aussi importants que jamais. Mais pour les grammaires arbitraires, les LBA et les langages contextuels, par contre, j'ai vu peu d'applications, voire aucune.
reinierpost

Réponses:

20

D'après ce que j'ai vu dans la communauté du traitement du langage naturel, les grammaires formelles à la Chomsky ne sont plus tellement utilisées. Ils (aussi) pensent que la hiérarchie de Chomsky est dépassée pour modéliser le langage.

Des règles telles que la règle de réécriture (l’algorithme de Lars), les modèles de dépendance (Dan Klein), la grammaire de substitution d’arbre (modèle DOP) et les grammaires binaires (Alex Clark) ont alors pris sa place.

mgalle
la source
En relisant ma réponse, cela semble plus négatif que je ne le voulais aussi. RL et CFL n'ont jamais été supposées être des modèles réalistes du langage naturel, et la plupart des "nouveaux" modèles y sont réellement inspirés.
mgalle
Je pensais que RL n'était même pas conçu comme un modèle de langage naturel, mais comme un modèle de comportement du système. [Le texte original de Kleene n'utilise pas non plus la terminologie du langage formel.]
DG_
26

En bref: oui.

Plus particulièrement: Chomsky fut l'un des premiers à formaliser une hiérarchie entre les langages, les grammaires et les automates. Cette idée est toujours très pertinente et est enseignée dans tous les cours d'introduction à la théorie des automates. Cependant, la hiérarchie spécifique proposée par Chomsky et les noms des éléments de la hiérarchie ne sont plus vraiment significatifs. Nous avons depuis inventé de nombreux formalismes qui se situent entre les niveaux de la hiérarchie de Chomsky, au-dessus ou au-dessous. Et les noms utilisés par Chomsky ne sont pas particulièrement intéressants, c'est-à-dire qu'ils ne sont pas basés sur une mesure intéressante de la complexité ou quoi que ce soit, ils ne sont que des chiffres. Les langages légèrement contextuels doivent-ils être de type 1.5, de type 1.7 ou de type 1.3? On s'en fout. "Légèrement sensible au contexte" est un nom beaucoup plus informatif.

Le Complexity Zoo est un peu différent car il regorge de toutes sortes d’équivalences conditionnelles, etc. Une hiérarchie plus moderne pour la théorie des automates ne serait pas linéaire (comparez par exemple CFG à PEG), mais aurait toujours une topologie bien connue. Pour vous faire une idée de la théorie des automates modernes, vous devriez vous pencher sur les bibliothèques de combinateur d’analyseurs et sur certains éléments relatifs à l’unification et à la théorie des types (même si ces deux branches sont très éloignées).

Wren Romano
la source
4
Nous avons trouvé de meilleurs noms, oui. Cela ne signifie pas que les résultats sont obsolètes.
Raphaël,
4
@Raphael: L'ancienneté n'est pas due aux noms, mais à la hiérarchie spécifique introduite par Chomsky qui n'est plus utilisée. Les inclusions décrites par la hiérarchie de Chomsky sont (a) toujours correctes et (b) parmi les inclusions de toute hiérarchie moderne; mais la hiérarchie de Chomsky en tant que telle n’est pas terriblement pertinente si ce n’est qu’elle atteint certains des points forts bien connus. Les gens ne font plus de recherches sur la hiérarchie de Chomsky, ils font des recherches ailleurs. Ce n'est pas comme la tour polynomiale qui a des raisons pour ses noms / structures.
Wren romano
26

Si quelque chose dans TCS est obsolète, c'est cette hiérarchie d'inclusion du petit sous-ensemble de classes de complexité qui était connu / considéré intéressant en 1956.

Reposez en paix, Hiérarchie de Chomsky, et ne hantez plus le programme théorique de premier cycle.

Scott Aaronson
la source
12
Comme le disait un jour Juris Hartmanis: "Qu'en est-il des cours de Chomsky? Les cours de Chomsky sont une abomination !!"
Ryan Williams
1
Ryan: Je me souviens aussi que Juris avait qualifié le CH d’abomination! En écrivant ma réponse, je me demandais s'il voulait que sa remarque soit rendue publique. Mais vous le connaissez mieux que moi ... :-D
Scott Aaronson,
Ce commentaire peut également être motivé au moins un peu par la vision péjorative de certaines sciences informatiques théoriques et des mathématiciens vis-à-vis de la linguistique et d'autres sciences "faibles": xkcd.com/435 . Mais, bien sûr, la hiérarchie de Chomsky aujourd'hui masque la vision de la théorie de la complexité moderne, alors cela répond à ma question. Néanmoins, il serait bien d’avoir un remplacement mis à jour pour commencer dans le programme théorique de premier cycle, surtout si vous êtes plus intéressé par les langues formelles et les grammaires pour des applications pratiques.
Jakob
1
La hiérarchie de Chomsky répertorie les classes de langages en fonction de la complexité de la description, et non de la complexité du calcul, ce qui est généralement impliqué lorsque vous utilisez le terme "théorie de la complexité". Ils sont liés, évidemment. Quoi qu'il en soit, je ne vois toujours pas comment une hiérarchie (grossière) peut masquer des classes plus raffinées qui peuvent difficilement être comprises sans provenir de Chomsky Hierarchy. Ils sont la porte d'entrée!
Raphaël
20

Si vous considérez la hiérarchie de Chomsky avec des noms "modernes" (c.-à-d. REG, LIN, CFL, CSL, RE ou respectivement DFA / NFA, PDA, LBA, TM), je dis: non, ce n'est pas démodé!

Raison 0 : Il est toujours correct en ce sens que ses définitions et ses résultats ne sont pas contradictoires avec les nouvelles connaissances.

Raison n ° 1 : Ces classes / modèles de calcul sont toujours les premiers que vous enseignez - car ils sont simples et bien étudiés. Essayez d’enseigner l’automate LR à un étudiant de premier cycle sans couvrir d’abord DFA / DPDA.

Raison n ° 2 : les classes restent le premier / principal point de référence pour les nouvelles inventions (j'ai écrémé un article sur le multi-CFG qui, bien sûr, disait: plus que CFG, moins que CSG). C'est peut-être en partie parce qu'ils sont enseignés en premier lieu, mais aussi parce qu'ils sont simples et bien étudiés.

Anti-Raison 3 : les résultats ne sont pas périmés simplement parce que de nouvelles classes / modèles ont été trouvés. Ils conservent leur valeur en tant que bases du domaine bien qu’ils ne soient pas utilisés activement à la recherche.

Raphaël
la source
10
"Les mathématiques ne vieillissent pas , elles deviennent classiques ." (Je ne sais malheureusement pas à qui cette citation est attribuée.)
Heinrich Apfelmus
Ne voulez-vous pas dire "NPDA" au lieu de "DPDA"? Certains langages sans contexte ne sont reconnus que par des automates non déterministes.
Zsbán Ambrus
@ ZsbánAmbrus Tout à fait à droite; J'aurais dû écrire juste "PDA". Merci!
Raphael
La dernière raison n'est pas convaincante du tout (je suppose que c'est pourquoi c'est une anti raison?). De nombreux résultats deviennent obsolètes parce qu’ils sont intégrés ou parfois même banalisés par une approche différente du sujet. Je ne dis pas cela le cas ici, mais simplement que la raison énoncée ne dit pas grand chose. En outre, un nitpick grammatical: "Tomber" n'est pas un verbe.
Sasho Nikolov
11

Je pense que cela dépend du modèle de calcul. Si vous considérez le fini / pushdown / etc. Comme automates comme modèle de calcul, la hiérarchie de Chomsky devient importante (voir par exemple le livre de Sipser). Par contre, il joue peu de rôle dans le modèle de calcul de Turing.

L'illustration suivante peut être utile:

Edit: les langages formels jouent un rôle important dans la conception de langages informatiques (tels que Java) et de compilateurs, ainsi que dans le traitement du langage naturel (PNL).

MS Dousti
la source
Désolé András, je ne comprends pas votre commentaire. Le PO a demandé si la hiérarchie de Chomsky était obsolète. Son raisonnement était qu'il ne le voyait pas dans la complexité zoo, etc. J'ai répondu que s'il considérait les automates comme un modèle informatique, la hiérarchie de Chomsky devenait pertinente. De plus, j'ai mentionné que les classes de cette hiérarchie sont importantes pour la conception du compilateur et les algorithmes de PNL. IMHO, c'est totalement lié à la question.
MS Dousti
2
Bien sûr, la hiérarchie de Chomsky n’est pas vraiment dépassée, on la trouve dans la plupart des introductions en informatique théorique, dans les langages formels, dans la conception de compilateurs, etc. Je pense que les langues de remerciement entre REG et CFL, et entre CFL, peuvent également être importantes. Est-ce simplement une mauvaise idée d'étendre la hiérarchie avec ces langages, car la hiérarchie de Chomsky a une odeur de "dépassée" qui n'est pas importante pour la recherche actuelle?
Jakob
Je ne pense pas que ce soit une mauvaise idée, bien qu'il faille trouver une application adaptée à la nouvelle extension.
MS Dousti