Corrigé Mines-Ponts 2025 Informatique I MPI — Partie 4 (Q30 à Q34) : Analyse syntaxique : grammaire et automate
Sujet officiel du concours Mines-Ponts, session 2025, épreuve Informatique I MPI. Corrigé rédigé par Ibrahim Alame.
Sujet officiel (PDF, site du concours)
Énoncé
On veut une fonction analyse qui lit un tableau associatif écrit sous la forme \{id:5,valeur:12,ok:0\} : une accolade ouvrante, une liste non vide de couples clef:valeur séparés par des virgules, une accolade fermante ; la clef est une suite finie non vide de lettres de a à z, la valeur un entier non signé sans zéro non significatif, et ni l'une ni l'autre ne peut manquer. La notation désigne la disjonction des symboles de à (chiffres ou lettres), et l'on dispose des règles
Q30. Écrire la règle de production d'une clef. Q31. Écrire la règle de production d'une valeur.
On considère la grammaire d'axiome :
Q32. \{id:5,valeur:12,ok:0\} appartient-il au langage engendré ? Le cas échéant, dessiner un arbre de dérivation. Même question pour \{james:007\}.
Q33. Décrire (schéma ou table) un automate déterministe, sans transition vide, reconnaissant le langage de ; les transitions peuvent être étiquetées par des disjonctions de lettres ou de chiffres.
Q34. Vérifier, en donnant les étapes, que \{code:102\}, \{v:0\} et \{a:1,b:2\} sont reconnues ; dans quel état est l'automate sur \{james:007\} ?
Corrigé
Q30. Une clef est une lettre, éventuellement suivie d'une clef :
Par récurrence sur , engendre exactement les mots de lettres minuscules, chacun par une seule dérivation (la règle choisie est dictée par la présence ou non d'une lettre suivante).
Q31. Il faut traiter le zéro à part : une valeur est soit 0, soit un chiffre non nul suivi d'une suite quelconque, éventuellement vide, de chiffres :
engendre toutes les suites finies de chiffres, engendre donc 0 et les écritures décimales sans zéro de tête, c'est-à-dire exactement les entiers non signés sans zéro non significatif. La grammaire n'est pas ambiguë : le premier caractère décide entre et , la présence d'un chiffre suivant entre et .
Ce que le correcteur attend : le cas de 0 séparé. Une règle comme accepte 007 ; le jury a aussi refusé les règles « non déterministes », c'est-à-dire celles où deux productions d'un même non-terminal commencent par le même symbole, comme la variante sans (deux règles débutent par ). Avec la règle , autorisée par le programme, chaque choix de production est dicté par le prochain caractère lu : c'est la version la plus sûre.
Q32. Le mot \{id:5,valeur:12,ok:0\} appartient au langage. donne les accolades ; deux fois puis donnent les trois couples ; chaque se dérive avec Q30 et Q31 (id, valeur, ok sont des clefs, 5, 12, 0 des valeurs). Voici l'arbre de dérivation complet (terminaux en couleur, lus de gauche à droite) :
100 % gratuit
La suite du corrigé est sur Adloun
Le corrigé rédigé en entier, question par question, et le tuteur pour poser des questions sur ce sujet.
Voir le corrigé complet, gratuitementInscription gratuite en 30 secondes (e-mail, nom d'utilisateur, mot de passe, classe ou profil), sans carte bancaire : arrivée directe sur le corrigé.