Exercice 1 Consider the grmmr : TD 1 Context-free grmmrs. il existe 8 règles de grmmires -> -> A A -> A -> A -> AA -> -> -> Très souvent, on ne donne que l prtie R de G -symoles terminux : tous ceux qui n pprissent ps en prtie guche de règle (pour les grmmires hors contexte) : ici c est et -symoles non terminux : tous les utres : ici, A et -xiome : si non explicité c est l prtie guche de l première règle Mot/phrse : suite de symoles terminux Arre de dérivtion d un mot : rre dont : - L rcine est l xiome - Les feuilles lues de guche à droite sont les symoles du mot - Les nœuds non feuilles sont des non terminux dont les fils s otiennent pr une règle de grmmire Dérivtion guche (respectivement droite) d un mot : suite des règles à ppliquer pour otenir le mot en prtnt de l xiome en remplçnt à chque étpe le non terminl le plus à guche(respectivement droite) Phrse : A 1 2 3 4 5 6 7 8 Première méthode : H. Kssel 1 lngges/compiltion (2010/2011)
-1-2 -3-4 -5-6 -7-8 Deuxième méthode -1-2 -3-8 -4-5 -6 A -7 Remrques : -les feuilles n ont ps à être toutes u même niveu dns l rre - l phrse dmet plusieurs (u moins2) rres de dérivtion. Conclusion l grmmire est migüe. => prolèmes potentiels Exemples cnonique de grmmire migüe (ou tout du moins les effets de l migüité) -If then if then else (on ne sit ps à qui v le else) donc pr défut le else v u dernier if (1 e trouvé) -1+2*3 : (1+2)*3 OU 1+(2*3)? Dérivtion guche (1 e méthode) => => => => => => => => 8étpes (nomre de => ) H. Kssel 2 lngges/compiltion (2010/2011)
Remrques : -fcile, ppliction des même règles que celles de construction de l rre - il existe utnt de dérivtion guche (respect droite) que d rres de dérivtion. Dérivtion droite (1 e méthode) => => => => => => => => A Remrques : - Plus difficile, il fut voir l rre sous les yeux - Le nomre d étpes est identique à l dérivtion guche. Norml, chque dérivtion décrit l fçon dont expnsés les noeuds de l rre. eul l ordre chnge. Phrse2 : Impsse : si un des de niveu 3 génère un (->) lors on dépsse le nomre de symoles du mot. i ils génèrent tous deux un on n otient ps le mot demndé. On doit lors essyer l utre solution 2 e solution : H. Kssel 3 lngges/compiltion (2010/2011)
Impsse églement : pour générer un (->) le de niveu 4 génère deux utres symoles : on dépsse l longueur du mot Conclusion : A n dmet ps d rre de dérivtion ce qui équivut à «ce mot ne fit ps prtie du lngge engendré pr l grmmire. A A AA ) Find prse-trees for the following sentences :,. ) Construct leftmost nd rightmost derivtion for ech of the sentences in ) Exercice 2 Consider the grmmr: (L) L L, ) Wht re the terminls, nonterminls, nd strt symol? Terminux : () Non terminux: L Axiome: Les seuls mét-crctères de description de règle sont -> et tous les utres crctères sont des symols de T ou de V ) Find prse-trees for the following sentences : (,) H. Kssel 4 lngges/compiltion (2010/2011)
( L ) L, Derivtion guche: => (L)=>(L,) =>(,)=>(,) => (,) Dérivtion droite: => (L) => (L,) => (L,) => (,) => (,) Meme nomre d étpes: 5 (,(,)) ( L ) L, * *à ccrocher à l rre 1 Derivtion guche: => (L) =>(L,) => (,) => (,) => (,(L))=> (,(L,)) => (,(,)) => (,(,)) => (,(,)) Derivtion droite: =>(L) => (L,) =>(L, (L)) => (L, (L,)) => (L, (L,)) => (L, (,)) => (L,(,)) => (,(,)) => (,(,)) H. Kssel 5 lngges/compiltion (2010/2011)
Meme nomre d étpes:9 (,((,),(,))) ( L ) L, ( L ) L, * Accrocher l rre 1 TODO (info il y 16étpes) (,((,),(,)) * En ppliction de l règle -> (L), seulle règle à générer des prenthèses, tous les mots du lngge engendré pr l grmmire sont correctement prenthéséses. Ce n est ps le cs du mot 4, il n pprtient ps u lngge ce qui équivut à il n dmet ps d rre de dérivtion. c) Construct leftmost derivtion for ech of the sentences in ) d) Construct rightmost derivtion for ech of the sentences in ). Exercice 3 Construct grmmr generting the set of plindromes on the lphet {,}. Plindrome se lit de l même fçon de l guche et de l droite (ex : o, elle lvl ) Implique un point de symétrie, lettre centrle pour plindromes impires ou le vide entre les 2lettres centrles pour les pires. Idée : donner une définition inductive des plindromes : - Lister les plindromes les plus simples - Dire comment construire un plindrome à prtir d un utre - -> - -> i on dmet que le mot vide est un plindrome, on peut utiliser (terminl spécil représentnt l chîne vide) : H. Kssel 6 lngges/compiltion (2010/2011)
-> -> Exercice 4 Consider the grmmr : + * ) how how the string +* is generted y this grmmr. 2méthodes: -fire un rre de derivtion (fit dns l question ) - écrire une dérivtion (guche ou droite) : ce que l on fit Dérivtion guche : => * => +* => +* =>+* => +* Le tout en 5étpes Dérivtion droite: => * => * => +* => +* => +* -une seule dérivtion suffit à répondre -une dérivtion lternnt guche et droite mrcherit ussi ) Find prse-tree corresponding to this sentence. * + c) Wht is the lnguge generted y this grmmr? G engendre le lngge des expressions rithmétiques post-fixées (opérteurs suit ses opérndes) vec opérteurs + et * et opérndes H. Kssel 7 lngges/compiltion (2010/2011)
A+ post-fixé A+ infixé + pré-fixé Ex : 12+3* expression correcte (1+2 => 3*3=> 9 on un seul chiffre à l fin) 1+2*3 incorrecte (1+???) 123+ (2+3=> 1et 5 donc on ps un seul chiffre à l fin) Exercice 5 Among the grmmrs elow find which one re miguous. G est migüe équivult à dire qu il existe (u moins) une phrse du lngge qui dmet plusieurs dérivtions (u moins 2). Prouver que G est migüe : fcile, il fut exhier une phrse migüe Prouver le contrire : plus difficile, demnde une démonstrtion formelle (plus ou moins^^) ) 01 01 Ç engender les phrses de type 0 n 1 n n>=1 (l puissnce pour dire que le crctère est répété n fois) G est non migüe : il n y qu une seule règle qui est non terminle => 01. Dns cette règle, le seul symole non terminl () n pprit qu une fois. Il n y donc ps de choix dns l construction d une dérivtion On pourr le montrer plus formellement pr induction sur l longueur des phrses du lngge. ) () Engendre des phrses contennt ( et ) qui sont correctement prenthésées. G es t migüe. ()() dmet deux rres de dérivtion: () () 1) H. Kssel 8 lngges/compiltion (2010/2011)
2) () () c) G est migüe: dmet deux rres de derivtion H. Kssel 9 lngges/compiltion (2010/2011)
d) + * () Grmmire des expressions régulières ex: (+)* G est migüe. A dmet deux rres de derivtion: H. Kssel 10 lngges/compiltion (2010/2011)
Exercice 6 Construct non miguous grmmrs for ll the lnguges elow: ) Arithmetic expressions composed of integers, identifiers, 4 inry opertors (+, -, *, /) nd unry -. Prenthèse cours : Expressions infixées L grmmire doit exprimer : 1- Les règles de précédence stndrds entre opérteurs Préc(-unire)>prèc(*)= préc(/)>préc(+) = préc (-inire) 1+2*3 -> 1+(2*3) 2- L ordre d ssocition stndrd des opérteurs de même précédence (ssocition à guche) 1+2+3 -> (1+2)+3 Amigüité sur l ordre d ssocition -> + A droite : => + => + => ++ => ++ => ++ A guche: => + => + => ++ => ++ => ++ Le résultt est le meme cr + est ssocitif, mis on essye qund même de lever l migüité Grmmire équivlente non migüe, qui forvce l ssocition à guche -> + => + => ++ => ++ Amigüité sur l précédence des opérteurs vec -> + * A+* on otiendrit des 2cotés à +* mis à droite les priorités serient +(*) et à guche (+)* H. Kssel 11 lngges/compiltion (2010/2011)
Grmmire équivlente non migüe qui respecte l précédence. On introduit un non terminl intermédiire : -> + P P-> P*P A+* P + P P * P Remrques : - On vérifie que G génére ien, +, *, ++, **,. - G reste migüe sur l ordre d ssocition de + et * A++, ** sont migües Retour à l exo 6 : -> +P -P P P-> P*F P/F F F-> -F Remrques: 1- Pour introduire des prentheses, jouter l règle: F-> () 2- L non-migüité ce n est ps d voir une seule fçon d écrire des expresions rithmétiques équivlentes. Pr exemple G permet d écrire -12, -(12) -> N I N-> pm C M->CM C C -> O P P -> 1 2 9 I -> lj l J -> lj CJ l C l -> z A Z H. Kssel 12 lngges/compiltion (2010/2011)
) Left ssocitive lists of identifiers seprted y comms. Liste ssocitive à guche ->, I ->,I I I -> <voir ci-dessous>,,c, I, I c I c) Right ssocitive lists of identifiers seprted y comms. -> I, I Exercice mison: donner des grmmires equivlents (engendrnt de même lngge) non migües pour 5 et 5c H. Kssel 13 lngges/compiltion (2010/2011)