Cours Compilation
Cours Compilation
Cours Compilation
Chapitre I
Cours de compilation
1.2) Exemples
Exemples de langage compils :
Fortran, C, C++, Pascal, ADA,
14/10/2015
Il s
Mot_cl
identificateur identificateur
Sparateur
Op_rel
Op_arith
liminer
11
12
14/10/2015
2.3) Rsum
Programme source
Analyse
Lexicale
Analyse
Programme source
Analyse
Syntaxique
Reprsentation
intermdiaire
Reprsentation
intermdiaire
Analyse
Smantique
Synthse
Programme cible
13
Analyse
14
Gnrateur de
code
intermdiaire
Synthse
Programme cible
Programme source
Chapitre II
Optimisateur
du code
Gnrateur
du code cible
Analyse
Analyse lexicale
Reprsentation
intermdiaire
Synthse
Programme cible
16
15
I. Introduction
Dfinitions
17
signification collective.
Exemples :
les chanes , , <, > sont des oprateurs relationnels. Lunit
variables ou de fonctions).
Les chanes if, else, while sont des mots cls.
Les symboles ; ( ) . sont des sparateurs.
18
14/10/2015
Exemples:
19
20
Dfinitions
Un alphabet est un ensemble de symboles.
x0 =
Pour n > 0, xn = xn-1x =xxn-1.
finie de symboles de .
21
22
. Exemple :
Soit lalphabet = {a,b,1}, soit L lensemble des mots qui se terminent
LC est l'ensemble des chanes formes d'une lettre suivie d'un chiffre,
Notation Dfinition
LUM
{ x | x L ou x M}
la concatnation de L et M
LM
{xy | x L et y M}
la fermeture de Kleene de L
L*
{ x1x2xn | xi L, n N et n 0}
la fermeture positive de L
L+
{ x1x2xn | xi L, n N et n >0}
l'union de L et M
23
chiffre,
24
14/10/2015
Problmatique
Expression rgulire
mots acceptables ?
Comment dcrire un langage ?
Comment savoir quun mot donn appartient un
langage donn?
26
Remarques
Priorit des oprateurs : on conviendra des priorits
27
Dfinition rgulire
Pour allger lcriture de certaines expressions rgulires, on
introduit des dfinitions rgulires qui permettent de donner des
noms certaines expressions en vue de leur rutilisation. On
crit donc
d1 r1
d2 r2
dn r n
On utilise la notation
29
30
14/10/2015
31
Exemple 1
32
Reprsentation matricielle
0
1
2
3
a
1
3
b
2
0
Tableau de transition
33
34
Exemple 2
35
36
14/10/2015
Chiffre
Chiffre
37
38
Expression
Schma correspondant
rgulire
a
ab
a|b
Exercice
Donner les automates finis non dterministe correspondants aux
expressions suivantes :
1) (a|b)*aba
2) (ab*c)|(a(b|c*))
3) Ecrire un automate reconnaissant les entiers signs. Si le
nombre comporte plusieurs chiffres, le premier ne peut pas tre
0 (pas de 007 par exemple)
4) Ecrire un automate reconnaissant les rels. Exemples : -5280,
+39.37, 1.849E-4, -.849E4
a*
39
41
40
initial.
Sil existe plusieurs transitions entre deux tats , elles sont remplaces par
une transition unique tiquete par lunion des tiquettes des diffrentes
transitions.
Des transitions tiquetes sont ajoutes entre les tats qui ne sont relis
par aucune transition.
42
14/10/2015
gnralis.
A lissue du processus, on obtient un automate gnralis
43
44
Exercice
Dessiner lautomate non dterministe dfini par :