Grammaires et Langages DS
Transcription
Grammaires et Langages DS
INSA de Lyon 4IF Année scolaire 2014-2015 GL - DS Grammaires et Langages DS Jeudi 2 avril 2015 - Durée : 1h30 - Documents autorisés Répondre directement sur le sujet à toutes les questions dans les cases prévues à cet effet 1 Automate fini et expressions régulières (6 pts) Dans l’expression régulière suivante, le ou est indiqué par le symbole | et le symbole ∗ indique de zéro à plusieurs répétitions (étoile de Kleene). Utiliser la même notation dans vos réponses. Soit l’expression régulière E = abc(a*|b)a. Dériver successivement l’expression afin de trouver l’automate déterministe de manière directe. Correction : — Da (E) = bc(a∗ |b)a = F — Db (F ) = c(a∗ |b)a = G — Dc (G) = (a∗ |b)a = H — Db (H) = a = I — Da (I) = = J — Da (H) = a∗ = K — Da (K) = a∗ = K Et l’automate associé : b E a F b G c H a I a J a K Eric Guérin [email protected] 19 avril 2015 1/4 Année scolaire 2014-2015 GL - DS INSA de Lyon 4IF Donner l’automate fini non-déterministe associé à E (construction de Thompson). Correction : ε abc 0 ε 1 2 a 3 ε ε 4 ε ε b a 6 7 5 Donner la version déterministe de cet automate (chaque état de cet automate donnera l’ensemble des états de l’automate précédent) Correction : 5,6 a 7 b 0 abc a 1,2,3,4,6 a 2,3,6,7 2/4 19 avril 2015 Eric Guérin [email protected] INSA de Lyon 4IF 2 Année scolaire 2014-2015 GL - DS Analyse prédictive (6 pts) Voici la grammaire qui permet de décrire une grammaire formelle hors-contexte : G G R L L L → → → → → → RpG nf L nL tL Les symboles terminaux sont les suivants : n, t, p et f . G symbolise la grammaire, R une règle, et L une liste de symboles terminaux (t) ou non-terminaux (n). f est une flèche et p un séparateur de type point-virgule. Le symbole indique le mot vide (epsilon production). Indiquer l’ensemble des nuls N de cette grammaire ainsi que pour chaque symbole non terminal l’ensemble des premiers P et des suivants S (on représentera la fin d’un mot par le symbole $). N = {G, L} P(G) = { n, } P(R) = { n } P(L) = { n, t, } S(G) = { $ } S(R) = { p } S(L) = { p } Compléter sa table d’analyse LL(1) : — indiquer la partie droite de la règle — laisser la case vide si l’automate doit se retrouver en état d’erreur G R L 3 $ p n RpG nf L nL t f tL Analyse ascendante (8 pts) La grammaire suivante est équivalente à la précédente en terme de langage produit mais plus adaptée à une analyse ascendante : G G R L L L → → → → → → GRp nf L Ln Lt Les symboles terminaux et non-terminaux ont la même signification que précédemment. Recopier cette grammaire en l’augmentant et dessiner son automate LR(0) Correction : Eric Guérin [email protected] 19 avril 2015 3/4 Année scolaire 2014-2015 GL - DS INSA de Lyon 4IF Correction : $ E1 A→•G G →•G R p G →• G E2 A→G • G →G • Rp R →•nf L R n Accept E4 G →G R • p E3 R →n • f L p f E5 G →G Rp• E6 R →nf • L L→•Ln L→•Lt L→• L E7 R →nf L• L→L • n L→L • t n t E8 L→Ln• E9 L→Lt• Identifier les états en conflit et calculer les symboles suivants de G, R et L. Correction : Etats E1 , E2 , E6 et E7 . S(G) = {n, $}. S(R) = {p}. S(L) = {n, t, p}. Donner la table d’analyse SLR(1) qui permet de résoudre les conflits obtenus précédemment. La règle R0 $ E1 R2 E2 R0 (A) E3 E4 E5 R1 E6 E7 E8 E9 est celle de l’axiome, les autres sont numérotées comme dans l’ordre du sujet. p n t f G R L R2 E2 E3 E4 E6 E5 R1 R6 R6 R6 E7 R3 E 8 E 9 R4 R4 R4 R5 R5 R5 Simuler l’exécution de l’automate (donner à chaque symbole lu l’état de la pile des états) sur la lecture du flux suivant : n f n t p $. États E1 E1 E1 E2 E1 E2 E3 E1 E2 E3 E6 E1 E2 E3 E6 E1 E2 E3 E6 E7 E1 E2 E3 E6 E7 E8 E1 E2 E3 E6 E1 E2 E3 E6 E7 E1 E2 E3 E6 E7 E9 E1 E2 E3 E6 E1 E2 E3 E6 E7 E1 E2 E1 E2 E4 E1 E2 E4 E5 E1 E1 E2 E1 E2 4/4 Action R2 transition G lecture n lecture f R6 transition L lecture n R4 transition L lecture t R5 transition L R3 transition R lecture p R1 transition G Accept Reste à lire nf ntp$ nf ntp$ nf ntp$ f ntp$ ntp$ ntp$ ntp$ tp$ tp$ tp$ p$ p$ p$ p$ p$ $ $ $ $ 19 avril 2015 Eric Guérin [email protected]