On présentera dans ce cours les bases avancées de la théorie des
langages formels, aussi bien du point de vue mathématique que du point
de vue informatique (avec une préoccupation linguistique). Le but est
d'aborder d'une part la problématique de l'analyse syntaxique
automatique (parsing), centrale en TAL, et d'autre part
celle de la compilation, problématique plutôt
informatique mais qui inspire de nombreuses applications de TAL et de
linguistique formelle.
|
Plan (indicatif) du cours
|
Organisation des séances
sem. | Date | Type/lieu | Description | Liens |
---|---|---|---|---|
1 | 17/01/2011 | CM, 226C | Ch1. Langages rationnels (1) |
Polycopiés: identités
rationnelles, regexp de
grep, Définitions
automates
propriétés de fermeture Voir aussi le très complet polycopié de Yvon & Demaille (sur les automates). |
18/01/2011 | TD, 226C | Automates et algorithmes. | feuille d'exercices n°1 | |
2 | 24/01/2011 | ---------- Séance supprimée ---------- | ||
25/01/2011 | TD, 226C | Automates et algorithmes. | feuille d'exercices n°1 (suite), et feuille d'exercices n°2, | |
3 | 31/01/2011 | CM, 226C | Ch1. Langages rationnels (II) | Polycopiés: théorèmes d'équivalence, expressions rat. et automates, automate généralisé |
01/02/2011 | TD, 226C | Automates, langages rationnels, grammaires | feuille d'exercices n°3 | |
4 | 07/02/2011 | CM, 226C | Ch2. Langages algébriques (I) | Polycopié: rappels grammaires formelles |
08/02/2011 | TD, 226C | Grammaires usuelles, transformation de grammaire. | feuille d'exercices n°4 | |
5 | 14/02/2011 | ---------- Séance supprimée ---------- | ||
15/02/2011 | ---------- Séance supprimée ---------- | |||
6 | 21/02/2011 | CM, 226C | Ch2. Langages algébriques (II) | |
21/02/2011 | 13h30, 244E |
Séance supplémentaire
Ch2. Langages algébriques (III) |
Polycopiés: argument de Shieber, machine de Turing, classes de langages | |
22/02/2011 | TD, 226C | Transformations de grammaires |
feuille
d'exercices n°4 (suite)
quelques corrigés |
|
7 | 28/02/2011 | ------------- devoir sur table -------------- | ||
01/03/2011 | Ch3. Introduction au parsing (I) |
Polycopiés: algos naïfs
descendants, algos
naïfs
ascendants, arbre
top-down.
Versions python: td_trop_naif, td_standard, td_buprp, td_shift-red, |
||
8 | 07/03/2011 | CM, 226C | Ch3. Introduction au parsing (II) | Polycopiés: arbre bottom-up, table LL |
08/03/2011 | TD, 226C | Algorithmes naïf, LL(1) | feuille n°5 | |
9 | 14/03/2011 | CM, 226C | Ch4. Introduction au parsing (III) | Polycopié: table LR(0) |
15/03/2011 | TD, 226C | Correction DST ; Parsing prédictif | corrigé, feuille n°6 | |
10 | 21/03/2011 | CM, 226C | Ch4. Parsing tabulaire (I) | Synthèse graphique Earley |
22/03/2011 | TP, |
Implémentation en python de CYK |
algo
corrigé (version minimale) |
|
11 | 28/03/2011 | CM, 226C |
Ch4. Parsing tabulaire (II)
Ch5. Génération d'analyseurs |
|
29/03/2011 | TP, 451C | Implémentation de earley | Point de départ possible: canevas. | |
12 | 04/04/2011 | CM, 226C | Ch5. Génération d'analyseurs (II) | Polycopiés: grammaires sur X*xY*, systèmes d'attributs, génération de code |
05/04/2011 | TP, 451C | Lex & yacc (ply) |
Une présentation
de ply, que l'on peut
télécharger ici
Un exemple de programme ply (la classique calculatrice): ICI TP: arbres |
|
Vacances de printemps | ||||
(15) | 25/04/2011 | ---------- Jour férié ---------- | ||
26/04/2011 | tp, 451C, 14:30-18:30 | TP Lex & yacc (ply) | TP: normalisation de formules logiques |
Références bibliographies et liens
Généralités. Les ouvrages d'Aho, Ullman, et collaborateurs, presque tous traduits en français, constituent une source excellente pour la plupart des sujets vus dans ce cours. Mais on pourra aussi consulter avec profit l'excellent manuel (Partee, ter Meulen & Wall 93), qui traite aussi la plupart des aspects de ce cours (sauf la traduction dirigée par la syntaxe et la compilation), d'une façon moins complète, mais souvent mise en perspective par rapport au traitement du langage naturel et à la linguistique.Les bases des automates sont présentées, avec des exercices, dans le chapitre 17 de (Partee, ter Meulen & Wall, 93), mais les algorithmes vus en cours n'y sont pas présentés. Les algorithmes de minimisation, déterminisation, élimination des epsilon-transitions sont présentés dans (Hopcroft & Ullman, 79). L'algorithme de conversion d'une expression rationnelle en automate est décrit dans tous les manuels ; celui qui convertit un automate en expression rationnelle (algorithme de Mac Naughton et Yamada) est décrit dans (Autebert 87, pp. 88) (d'une façon assez technique).
Les langages algébriques (context-free) sont de loin les classes de langages les plus étudiées, et sont décrits dans tous les manuels évoqués. On pourra consulter (Autebert, 1987) pour une approche très mathématique. Voir aussi le chapitre 18 de (Partee, ter Meulen & Wall, 93), avec une section sur les automates à pile.
A propos des machines de Turing (évoquées dans le chapitre 2), on peut de nouveau se reporter à (Partee, ter Meulen & Wall, 93). On peut aussi consulter les manuels sur la complexité algorithmique et la théorie du calcul (theory of computation). Enfin, le texte intégral des articles de Turing, accompagné de préfaces très éclairantes, le tout en français, se trouvent dans (Turing/Girard 1995).>
La problématique de l'analyse syntaxique est détaillée, par exemple, au chapitre 4 de (Aho et al 2000), mais avec un point de vue « compilation » (algos LL, LR, LALR). Pour un point de vue plus linguistique, avec en particulier le problème des grammaires ambiguës et le parsing tabulaire, on pourra se reporter au polycopié de François Yvon.
Enfin, pour lex & yacc et leurs variantes, c'est toujours (Levine et al, 1990) qui reste la référence (de nombreux polycopiés en ligne sur Internet, aussi).
Références
- Jean-Marie Autebert, Langages algébriques, Masson (Paris), 1987.
- Alfred Aho & Jeffrey Ullman : The Theory of Parsing, Translation, and Compiling, Prentice Hall, 1972.
- Alfred Aho, Ravi Sethi and Jeffrey Ullman, Compilateurs, Dunod (Paris), 2000. [Traduction de Compilers, Addison-Wesley, 1986]
- Daniel Jurafsky & James Martin : Speech and Language Processing, Prentice Hall, 2000.
- J.E. Hopcroft and Jerry D. Ullman, Introduction to Automata Theory, Languages, and Computation, Addison Wesley Publishing Co. (Reading, Ma), 1979.
- John Levine, Tony Mason and Doug Brown, lex & yacc, O'Reilly, 1990.
- Barbara Partee, Alice ter Meulen & Robert E. Wall, Mathematical Methods in Linguistics, Kluwer Academic Publishers, 1993.
Liens
- La page du cours Théorie des Langages Formels d'Akim Demaille, co-auteur avec François Yvon d'un très complet polycopié en français sur la théorie des langages formels.