Vous êtes sur la page 1sur 2

Université de Maroua Semestre 1, Session 1

Faculté des Sciences Niveaux : L3IN & L3IGE Codes : INF325 & IGE325
Département de Mathématiques et Informatique Enseignant : Urbain NOUTSA TCHUENTE

CORRIGÉ EXAMEN RATTRAPAGE DE LANGAGES FORMELS


Année Académique (2021 – 2022)

1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) 13) 14) 15) 16) 17) 18) 19) 20)
a. X X X X X
b. X X X X X X
c. X X X X X X X X X X
d. X X X X X X

- Pour les questions non justifiés, se référer au cours.

1) Lors de la lecture d’un programme source, un compilateur enchaîne les phases d’analyse suivantes :
c. analyse lexicale, syntaxique, sémantique

2) La phase d’analyse qui s’appuie sur la théorie des grammaires est la phase d’analyse :
d. syntaxique

3) Un compilateur utilise des automates finis :


a. pour l’analyse lexicale, car ils sont suffisants pour décrire les lexèmes du langage

4) Une grammaire est algébrique si :


c. ses règles sont de la forme A→α, α chaîne quelconque, A non terminal

5) Les phrases du langage engendré par une grammaire :


b. admettent une dérivation gauche
c. admettent une dérivation droite
d. admettent un arbre de dérivation
Les propositions b, c et d sont équivalentes.

6) Une grammaire est ambiguë si :

La réponse correcte est « si il existe une phrase du langage qui admet plus d’un arbre de dérivation ».

7) Le « dangling else » est un problème :


a. en relation avec la notion d’ambiguïté
d. qu’un compilateur peut éviter en adoptant une grammaire adéquate

8) Deux grammaires sont équivalentes :


b. si et seulement si elles engendrent le même langage

9) Concernant les automates finis :


b. tout langage reconnu par un automate fini peut être engendré par une grammaire algébrique
c. les langages reconnus par les automates finis sont ceux engendrés par les grammaires linéaires

10) Concernant les expressions arithmétiques :

11) La grammaire E→E+E | E*E | (E) | id :


a. est ambiguë
La grammaire est ambiguë car elle n’impose aucun ordre de priorité entre + et *, ni aucun ordre d’asso-
ciation.
Page 1/1
12) La grammaire A→Aα | β est équivalente à :
c. A → βA’, A’→A’α | ε

13) Un analyseur prédictif :


c. sert à déterminer si une phrase appartient au langage engendré par une grammaire
d. donne la dérivation gauche d’une phrase du langage engendré par une grammaire

14) Un analyseur prédictif non-récursif :


c. utilise pour son fonctionnement le symbole spécial $

15) Soit la grammaire algébrique E→E OP E | –E | (E) | id, OP→+ | – | * | / :


c. ses symboles non terminaux sont : E OP

16) Selon la grammaire de la question précédente :


c. la dérivation droite de –id+id est : E => E OP E => E OP id => E + id => –E + id => –id + id

+ et id+ ne sont pas des phrases du langage. La dernière étape de c est incorrecte : on revient en arrière
sur la partie –id.

17) Soit la grammaire algébrique E→E + E | E * E | (E) | id :

L’ambiguïté est qu’une phrase du langage ait deux interprétations (syntaxique), pas que deux phrases du
langage aient la même interprétation (sémantique). La 2 nde étape de la dérivation c est fausse : on dérive
le non terminal le plus à droite. La 3ième étape de la dérivation d est fausse : on dérive le non terminal le
plus à gauche.

18) Soit la grammaire algébrique E→E+T | T, T→T*F | F, F→(E) | id :


a. cette grammaire est récursive à gauche
b. cette grammaire est équivalente à celle de la question précédente
La 3ième étape de la dérivation c est fausse : T ne donne pas directement id. La dernière étape de la déri -
vation d est fausse : on n’obtient pas la phrase d’origine.

19) La grammaire de la question précédente :


b. est équivalente à : E→T E’, E’→+ T E’ | ε, T→T * F | F, F→(E) | id
c. est équivalente à : E→E + T | T, T→F T’, T’→* F T’ | ε, F→(E) | id
d. est équivalente à : E→T E’, E’→+ T E’ | ε, T→F T’, T’→* F T’ | ε, F→(E) | id

20) Soit la grammaire E→TE’, E’→+ TE’ | ε, T→T*F | F, F→(E) | id :


a. cette grammaire est récursive à gauche
b. la dérivation gauche de id+id comprend 7 étapes (i.e. 7 symboles => )
d. la dérivation gauche de id+id*id comprend 9 étapes

La dérivation gauche de id+id est :


E => T E’ => F E’ => id E’ => id + T E’ => id + F E’ => id + id E’ => id+id.
La dérivation droite de id*id comprend 6 étapes :
E => T E’ => T => T * F => T * id => F * id => id*id.
La dérivation gauche de id+id*id est :
E => T E’ => F E’ => id E’ => id + T E’ => id + T * F E’ => id + F * F E’ => id + id * F E’ => id + id * id E’ =>
id+id*id

- A l'examen, vous ne deviez justifier aucune réponse.

Page 2/2

Vous aimerez peut-être aussi