Vous êtes sur la page 1sur 2

Ecole Nationale d'Ingénieurs de Tunis A.U.

2020/2021
Département TIC
Sections : 2INFO

Examen de Compilation 1

Exercice I
On se propose de dénir une unité lexicale pour des nombres complexes dont
le coecient de la partie réelle ainsi que celui de la partie imaginaire sont
des entiers relatifs. Une telle unité lexicale peut être spéciée par le modèle
suivant :
 Comme tout nombre complexe, un nombre complexe à coecients en-
tiers est composé de deux parties : une partie réelle et une partie ima-
ginaire.
 Une, au moins, des deux parties doit être présente.
 La partie réelle, si elle existe, est composée d'une suite non vide de
chires pris dans {0, . . . , 9}, éventuellement précédée par un signe (+
ou -).
 La partie imaginaire, si elle existe, est composée d'une suite de chires
pris dans {0, . . . , 9}, éventuellement précédée par un signe et nécessai-
rement suivie par la lettre 'i'.
 Si le coecient de la partie imaginaire n'est pas signé alors un + est
ajouté entre les deux parties.
À titre d'exemple, les nombres 47, -47, 47+11i, +11-47i, -i sont des éléments
de l'unité décrite ci-dessus.
1. Proposez une dénition régulière qui décrit l'unité lexicale des nombres
complexes à coecients entiers.
2. Proposez un automate ni déterministe reconnaissant le langage associé
à l'unité lexicale décrite ci-dessus.
Exercice II
Soit la grammaire G suivante, où l'ensemble des symboles terminaux est
1. Barème : 5+9+6.

1
VT = {nb, id, (, ), +, −, ×, ÷} et l'ensemble des symboles non terminaux est
={ ,
VN Expr Term Fact , }:
Expr −→ Expr + Term | Expr - Term | Term
Term −→ Term × Fact | Term ÷ Fact | Fact
Fact −→ (Expr ) | nb | id
1. Eliminez la récursivité à gauche de la grammaire G pour obtenir G . 0

2. Calculez les ensembles premier et suivant de la grammaire G . 0

3. Construisez la table LL(1) de G . 0

4. G peut-elle être ambiguë? Justiez votre réponse.


0

Exercice III
La grammaire G composée des deux règles S → (S )S | ε permet de générer
le langage de tous les mots qui représentent une séquence de parenthèse
0

correcte, c'est-à-dire, une séquence dont chaque préxe 2 contient, au moins,


autant de parenthèse ouvrante que de parenthèse fermante, avec une égalité
parfaite quand ce préxe est la séquence elle-même. À titre d'exemple, la
séquence (())()(()) est correcte alors que (()))(() ne l'est pas.
Parmi les grammaires propres suivantes, il y a exactement une qui génère
le même langage que G , précisez c'est laquelle et justiez votre réponse en
donnant des arguments qui éliminent les trois autres grammaires.
0

G : S → (S )S | ()S | ()
G : S → (S )S | (S ) | ()
1

G : S → (S )S | ()S | (S ) | ()
2

G : S → (S )S | ()
3
4

Exercice IV
Un ascenseur d'immeuble est contrôlé par deux commandes : ↑ pour monter
d'un étage et ↓ pour descendre d'un étage. On admet que l'immeuble est
composé d'un nombre illimité d'étages, qu'il contient un sous-sol et, qu'au
départ, l'ascenseur se trouve au rez de chaussée.
Proposez une grammaire qui génère toutes les séquences de commandes
qui, à la n, font toujours revenir l'ascenseur au rez de chaussée, sans jamais
descendre au sous-sol.
2. Un mot α est un préxe d'un mot ω ssi ω = αω 0 .

Vous aimerez peut-être aussi