Вы находитесь на странице: 1из 79

Th

eorie des langages

Th
eorie des langages et
compilation
Elise Bonzon
http://web.mi.parisdescartes.fr/vbonzon/
elise.bonzon@parisdescartes.fr

Th
eorie des langages
N

1 / 59

Th
eorie des langages et compilation

Th
eorie des langages et compilation

Structure dun compilateur


Analyse lexicale
Analyse syntaxique
Analyse semantique
Conclusion

Th
eorie des langages
N

2 / 59

Th
eorie des langages et compilation

Th
eorie des langages et compilation

Structure dun compilateur


Analyse lexicale
Analyse syntaxique
Analyse semantique
Conclusion

Th
eorie des langages
N

3 / 59

Th
eorie des langages et compilation

Un compilateur, cest quoi?


Un compilateur est un programme qui
prend en entree une donnee textuelle source (programme, donnee xml,
fichier de configuration, etc)
la reconnat (lanalyse) pour verifier sa correction
emet eventuellement un message derreur
le traduit dans un langage cible

programme source

Compilateur

programme cible

messages derreur

Th
eorie des langages
N

4 / 59

Th
eorie des langages et compilation

Les diff
erentes
etapes de la compilation
Programme source

Analyseur lexical

Analyseur syntaxique

Analyseur s
emantique
Table des
symboles

Erreurs
G
en
erateur de code interm
ediaire

Optimisateur de code

G
en
erateur de code

Programme cible
Th
eorie des langages
N

5 / 59

Th
eorie des langages et compilation

Les diff
erentes
etapes de la compilation
Partie analyse: s
epare les 6= constituants Programme source
du prog. source et produit une
repr
esentation interm
ediaire

Analyseur lexical

Analyseur syntaxique

Analyseur s
emantique
Table des
symboles

Erreurs
G
en
erateur de code interm
ediaire

Optimisateur de code

G
en
erateur de code

Programme cible
Th
eorie des langages
N

5 / 59

Th
eorie des langages et compilation

Les diff
erentes
etapes de la compilation
Partie analyse: s
epare les 6= constituants Programme source
du prog. source et produit une
repr
esentation interm
ediaire

Analyseur lexical

Analyseur syntaxique

Analyseur s
emantique
Table des
symboles

Erreurs
G
en
erateur de code interm
ediaire

Optimisateur de code

G
en
erateur de code
Partie synth`
ese: g
en`
ere le prog. cible `
a

Programme cible

partir de la repr
esentation interm
ediaire
Th
eorie des langages

5 / 59

Th
eorie des langages et compilation

Analyse lexicale
Programme source

Analyseur lexical

Analyseur syntaxique

Analyseur s
emantique
Table des
symboles

Erreurs
G
en
erateur de code interm
ediaire

Optimisateur de code

G
en
erateur de code

Programme cible
N

Th
eorie des langages

6 / 59

Th
eorie des langages et compilation

Analyse lexicale
Seul module au contact avec le texte source
Son but est de reconnatre les unites lexicales ou lex`emes
les identificateurs et les mots clefs du langage
laffectation et les op
erateurs

Utilise des expressions reguli`eres : automates finis


identificateur
ab := y

affectation

operateur
nombre

+ 20

Th
eorie des langages
N

7 / 59

Th
eorie des langages et compilation

Analyse syntaxique
Programme source

Analyseur lexical

Analyseur syntaxique

Analyseur s
emantique
Table des
symboles

Erreurs
G
en
erateur de code interm
ediaire

Optimisateur de code

G
en
erateur de code

Programme cible
N

Th
eorie des langages

8 / 59

Th
eorie des langages et compilation

Analyse syntaxique
Regroupe les unites lexicales en structures grammaticales en suivant les
r`egles figurant dans une grammaire
Resultat represente par un arbre syntaxique
La structure hierarchique dun programme est exprimee `
a laide de r`egles
Tout identificateur est une expression
Tout nombre est une expression
Si expr 1 et expr 2 sont des expressions alors expr 1 expr 2 est une expression

Grammaires hors contexte : automates `


a pile
:=

ab

20

*
y

x
Th
eorie des langages

9 / 59

Th
eorie des langages et compilation

Analyse s
emantique
Programme source

Analyseur lexical

Analyseur syntaxique

Analyseur s
emantique
Table des
symboles

Erreurs
G
en
erateur de code interm
ediaire

Optimisateur de code

G
en
erateur de code

Programme cible
N

Th
eorie des langages

10 / 59

Th
eorie des langages et compilation

Analyse s
emantique
Verifie la presence derreurs dordre semantique
V
erification de typage
V
erification des d
eclarations

Par exemple, si x et y sont des reels :


:=

ab

*
y

conversion entier -> r


eel

20

Th
eorie des langages
N

11 / 59

Th
eorie des langages et compilation

Partie synth`
ese
Programme source

Analyseur lexical

Analyseur syntaxique

Analyseur s
emantique
Table des
symboles

Erreurs
G
en
erateur de code interm
ediaire

Optimisateur de code

G
en
erateur de code

Programme cible
N

Th
eorie des langages

12 / 59

Th
eorie des langages et compilation

Partie synth`
ese

Generation du code intermediaire


Utilisation de variables temporaires
Choix de lordre pour faire un calcul

Optimisation du code
Am
elioration du code interm
ediaire
R
eduction du nombre de variables et dinstructions

Generation du code
Choix des emplacements m
emoire pour les variables
Assignation de variables aux registres

Th
eorie des langages
N

13 / 59

Th
eorie des langages et compilation

Table des symboles


Programme source

Analyseur lexical

Analyseur syntaxique

Analyseur s
emantique
Table des
symboles

Erreurs
G
en
erateur de code interm
ediaire

Optimisateur de code

G
en
erateur de code

Programme cible
N

Th
eorie des langages

14 / 59

Th
eorie des langages et compilation

Table des symboles

Enregistre les identifiants et les attributs (emplacement memoire, type,


portee)
Chaque identifiant (variable) a une entree dans la table des symboles
Lanalyseur lexical cree une entree dans la table des symboles `
a chaque
fois quil rencontre un nouvel identificateur
Par contre, les attributs seront calcul
es plus tard

Lanalyseur semantique se sert de la table des symboles pour verifier la


concordance des types

Th
eorie des langages
N

15 / 59

Th
eorie des langages et compilation

D
etection des erreurs
Programme source

Analyseur lexical

Analyseur syntaxique

Analyseur s
emantique
Table des
symboles

Erreurs
G
en
erateur de code interm
ediaire

Optimisateur de code

G
en
erateur de code

Programme cible
N

Th
eorie des langages

16 / 59

Th
eorie des langages et compilation

D
etection des erreurs

Erreur lexicale : le flot de caract`eres nest pas reconnu


Erreur syntaxique : construction non reconnue par le langage
Erreur semantique : probl`eme de typage,...

Th
eorie des langages
N

17 / 59

Th
eorie des langages et compilation

Th
eorie des langages et compilation

Structure dun compilateur


Analyse lexicale
Analyse syntaxique
Analyse semantique
Conclusion

Th
eorie des langages
N

18 / 59

Th
eorie des langages et compilation

Analyseur lexical et analyseur syntaxique


Lanalyse lexicale produit des lex`emes
En g
en
eral `
a la vol
ee `
a la demande de lanalyseur syntaxique
Lanalyseur syntaxique demande le prochain lex`
eme `
a lanalyseur lexical,
qui le reconnat et retourne un code identifiant ce lex`
eme

On pourrait imaginer que lanalyse lexicale travaille independamment et


fournisse une suite de lex`emes
mais on na pas besoin, en g
en
eral, davoir reconnu tous les lex`
emes pour
faire lanalyse syntaxique : la connaissance du lex`
eme courant suffit pour la
plupart des m
ethodes utilis
ees
et malheureusement, pour certains langages (C notamment), la
reconnaissance dun lex`
eme d
epend du contexte grammatical dans lequel il
se trouve

Th
eorie des langages
N

19 / 59

Th
eorie des langages et compilation

Analyse lexicale

Chaque lex`eme est un mot dun langage


Dans la plupart des cas, langage qui peut
etre repr
esent
e par une
expression r
eguli`
ere,
par exemple ((A Z ) + (a z))((A Z ) + (a z) + (0 9)) pour
reconnatre des identificateurs du genre X , Compteur , i3, R2D2, . . .
Langage fini pour de nombreux lex`
emes : +, ==, for , . . .

Lanalyseur lexical est donc un (gros) automate fini deterministe qui


reconnat lunion des langages des lex`emes
un
etat terminal correspond `
a la reconnaissance dun mot dun des
langages des lex`
emes

Th
eorie des langages
N

20 / 59

Th
eorie des langages et compilation

Fragment dautomate lexical


q2
f

a-z
a-z sauf f

q1

q3

a-z

0-9

a-z sauf i

i
0-9

q0

q4

q5

0-9

q6

=
0-9
q7

q8
Th
eorie des langages

21 / 59

Th
eorie des langages et compilation

Analyse lexicale

Analyseur lexical : En general pas tout `


a fait un automate deterministe
Certains lex`emes sont prefixes dun autre
+, +=, ++ ; = et ==
mots-cl
es et identificateurs (for et forme)
entiers et r
eels (3 et 3.14)

Le principe est de reconnatre le mot le plus long


Un etat terminal nimplique donc pas toujours larret de lautomate : il
peut continuer, et eventuellement revenir en arri`ere au dernier etat final
rencontre

Th
eorie des langages
N

22 / 59

Th
eorie des langages et compilation

Reconnaissance contextuelle

Il existe des langages o`


u une forme lexicale peut correspondre `
a differents
lex`emes selon le contexte
selon le contexte gauche : par exemple, if reconnu comme mot-cl
e
uniquement sil est au d
ebut dune instruction
selon le contexte droit : par exemple if reconnu comme mot-cl
e
uniquement sil est suivi dune parenth`
ese
Combinaison des deux

Th
eorie des langages
N

23 / 59

Th
eorie des langages et compilation

Probl`
emes de la reconnaissance contextuelle
Dans des langages mal definis
Pour les langages de programmation, dans des langages anciens (Fortran,
partiellement C, . . .)
Ils ne peuvent en general pas etre resolus par le seul analyseur lexical : les
contextes sont le plus souvent des langages non-contextuels reconnus par
lanalyseur syntaxique
Donc forte interaction entre les deux analyseurs
Entraine des probl`
emes de lisibilit
e, de fiabilit
e et des difficult
es `
a la
maintenance et aux extensions

Cest pourquoi les langages modernes de programmation evitent ces


questions de reconnaissance contextuelle
Mais pas les langages de script, de description, . . . concus la plupart du
temps par des non sp
ecialistes des langages

Th
eorie des langages
N

24 / 59

Th
eorie des langages et compilation

Exemple de probl`
eme de la reconnaissance contextuelle

en Fortran, les espaces sont non significatifs


DO12I = 1.25 : identificateur DO12I , op
erateur daffectation =, r
eel 1.25
DO12I = 1,25 : mot-cl
e DO, etiquette 12, variable I : boucle qui se
termine `
a l
enonc
e
etiquet
e 12 pour i allant de 1 `
a 25
dapr`
es la l
egende, on aurait perdu une fus
ee du projet Mercury `
a cause
dun . `
a la place dune , (`
a moins que ce ne soit linverse. . .)

Dans la plupart des langages de programmation actuels, les espaces sont


significatifs, et les mots-cles sont reserves

Th
eorie des langages
N

25 / 59

Th
eorie des langages et compilation

G
en
erateurs danalyseurs lexicaux

Langage C : lex ou flex


Langage Ada : Alex
Langage Java : Jflex
Langage OCaml : OCamllex

Th
eorie des langages
N

26 / 59

Th
eorie des langages et compilation

Construire un analyseur lexical avec lex

compilateur (f)lex
programme source (f)lex
nom.l

lex nom.l
flex nom.l

nom.yy.c

compilateur C
gcc nom.yy.c -ll
gcc nom.yy.c -lfl

nom.yy.c

a.out

Th
eorie des langages
N

27 / 59

Th
eorie des langages et compilation

Sp
ecifications en lex

d
eclarations
%%
r`
egles de traduction
%%
proc
edures auxiliaires

Th
eorie des langages
N

28 / 59

Th
eorie des langages et compilation

D
eclarations

La section des declarations comprend des


d
eclarations de variables,
constantes litt
erales
d
efinitions r
eguli`
eres

Une constante litterale est un identificateur qui est declare pour


representer une constante
Une definition reguli`ere permet dassocier un nom `
a une expression
reguli`ere

Th
eorie des langages
N

29 / 59

Th
eorie des langages et compilation

R`
egles de traduction
Les r`egles de traduction sont des instructions de la forme :
exp1
exp2
...
expn

action1
action2
actionn

chaque expi est une expression reguli`ere


chaque actioni est une suite dinstruction en C qui decrit quelle action
lanalyseur lexical devrait realiser quand un lex`eme concorde avec le
mod`ele expi
Les procedures auxilliaires sont les fonctions facultatives qui pourraient
etre utiles dans les actions.

Th
eorie des langages
N

30 / 59

Th
eorie des langages et compilation

Analyseur lexical
Analyseur lexical active par lanalyseur syntaxique :
Lit le texte dentr
ee, caract`
ere par caract`
ere
Cherche le plus long pr
efixe du texte dentr
ee qui corresponde `
a lune des
expressions r
eguli`
eres expi
Ex
ecute alors laction actioni

Action : rend le contr


ole `
a lanalyseur syntaxique
Sinon, lanalyseur lexical continue `
a chercher dautres lex`emes jusqu`
a ce
quune action rende le contr
ole `
a lanalyseur syntaxique
La recherche repetee de lex`emes jusqu`
a un retour explicite permet `
a
lanalyseur lexical de traiter les espaces et les commentaires de mani`ere
simple
Seule information retournee `
a lanalyseur syntaxique : lunit
e lexicale
Pour passer une valeur dattribut donnant des informations sur le lex`eme,
on peut laffecter `
a une variable globale appelee yylval.

Th
eorie des langages
N

31 / 59

Th
eorie des langages et compilation

Tableau des expressions r


eguli`
eres (1/2)
expression
c
\c
s
r1 r2
.

$
[s]
[^s]
r
r+
r?

reconnat
tout caract`ere c qui nest pas un operateur
caract`ere litteral c
la chane de caract`ere s
r1 suivie de r2
tout caract`ere sauf fin de ligne
debut de ligne
fin de ligne
tout caract`ere appartenant `a s
tout caract`ere nappartenant pas `a s
0 ou plusieurs occurences de r
1 ou plusieurs occurences de r
0 ou 1 occurence de r

exemple
a
\+
abc*
ab
a.b
^abc
abc$
[s]
[^abc]
a
a+
a?

Th
eorie des langages
N

32 / 59

Th
eorie des langages et compilation

Tableau des expressions r


eguli`
eres (2/2)

expression
r{m}
r{m,n}
r1 |r2
r1 /r2
(r)
\n
\t

reconnat
m occurences de r
entre m et n occurences de r
r1 ou r2
r1 si elle est suivie de r2
r
retour `a la ligne
tabulation

exemple
a{3}
a{3,8}
a|b
abc/123
(a|b)

Th
eorie des langages
N

33 / 59

Th
eorie des langages et compilation

Exemple d
eclarations
%{
/* d
efinitions des constantes litt
erales */
PPQ, PPE, EGA, DIF, PGQ, PGE, SI, ALORS, SINON, ID, NB, OPREL
%}
/* d
efinitions r
eguli`
eres */
delim
[ \n\t]
bl
{delim}+
lettre
[A-Za-z]
chiffre
[0-9]
id
{lettre}+ ({lettre}|{chiffre})
nombre
{chiffre}+ (\.{chiffre}+ )? (E[+\-]? {chiffre}+ )?
%%

Th
eorie des langages
N

34 / 59

Th
eorie des langages et compilation

Exemple r`
egles de traduction
{bl}
si
alors
sinon
{id}
{nombre}
<
<=
=
<>
>
>=

{/* pas daction et pas de retour */}


{return(SI);}
{return(ALORS);}
{return(SINON);}
{yylval = RangerId(); return(ID);}
{yylval = RangerNb(); return(NB);}
{yylval = PPQ; return(OPREL);}
{yylval = PPE; return(OPREL);}
{yylval = EGA; return(OPREL);}
{yylval = DIF; return(OPREL);}
{yylval = PGQ; return(OPREL);}
{yylval = PGE; return(OPREL);}

%%

Th
eorie des langages
N

35 / 59

Th
eorie des langages et compilation

Exemple proc
edures auxiliaires

RangerId() {
/* Proc
edure pour ranger dans la table des symboles le lex`
eme
dont le premier caract`
ere est point
e par yytext et dont la
longueur est yyleng et retourner un pointeur sur son entr
ee */
}
RangerNb() {
\begin{block}
/* proc
edure similaire pour ranger un lex`
eme qui est un
nombre */
}

Th
eorie des langages
N

36 / 59

Th
eorie des langages et compilation

Th
eorie des langages et compilation

Structure dun compilateur


Analyse lexicale
Analyse syntaxique
Analyse semantique
Conclusion

Th
eorie des langages
N

37 / 59

Th
eorie des langages et compilation

Quest ce que lanalyse syntaxique?


Lanalyse syntaxique a pour but :
de v
erifier que le texte dentr
ee est conforme `
a la grammaire
dindiquer les erreurs de syntaxe
de construire une repr
esentation interm
ediaire pour les autres modules du
compilateur
arbre de syntaxe abstraite, utilis
e par la suite de la compilation

Ne soccupe pas des aspects contextuels de la syntaxe


par exemple d
etecter lerreur dans int i; . . .; i = abcd;
cest le r
ole de lanalyse s
emantique, qui travaille sur la repr
esentation
interm
ediaire

Representation unique du texte source lanalyse doit etre deterministe,


si possible lineaire (eviter notamment les retours en arri`ere)

Th
eorie des langages
N

38 / 59

Th
eorie des langages et compilation

Types danalyseurs syntaxiques

Analyseur syntaxique descendant, ou analyseur pr


edictif
Construit larbre de d
erivation `
a partir de sa racine et en effectuant des
d
erivations en consid
erant la t
ete des r`
egles de production et en faisant
des d
erivations les plus `
a gauche
Famille des analyseurs LL (left scanning, leftmost derivation)
JavaCC, ANTLR, LLGen, . . .

Analyseur syntaxique ascendant ou par d


ecalage-r
eduction
Construit larbre de d
erivation `
a partir de ses feuilles et en effectuant des
d
erivations en consid
erant la partie droite des r`
egles de production et en
faisant des d
erivations les plus `
a gauche
Famille des analyseurs LR (left scanning, rightmost derivation)
YACC/Bison

Th
eorie des langages
N

39 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT

Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT
acT bT

Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT
acTbT
accbT

Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT
acTbT
accbT
accbbS

Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT
acTbT
accbT
accbbS
accbbaSbT

Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT
acTbT
accbT
accbbS
accbbaSbT

accbbadbT

Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT
acTbT
accbT
accbbS
accbbaSbT

accbbadbT
accbbadbc

Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT
acTbT
accbT
accbbS
accbbaSbT

accbbadbT
accbbadbc

Analyse LR :
accbbadbc

Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT
acTbT
accbT
accbbS
accbbaSbT

accbbadbT
accbbadbc

Analyse LR :
accbbadbc

Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT
acTbT
accbT
accbbS
accbbaSbT

accbbadbT
accbbadbc

Analyse LR :
accbbadbc

acT bbadbc

Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT
acTbT
accbT
accbbS
accbbaSbT

accbbadbT
accbbadbc

Analyse LR :
accbbadbc

acTbbadbc
aSbbadbc
Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT
acTbT
accbT
accbbS
accbbaSbT

accbbadbT
accbbadbc

Analyse LR :
accbbadbc

acTbbadbc
aSbbadbc
aSbbaSbc
Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT
acTbT
accbT
accbbS
accbbaSbT

accbbadbT
accbbadbc

Analyse LR :
accbbadbc

acTbbadbc
aSbbadbc
aSbbaSbc
aSbbaSbT
Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT
acTbT
accbT
accbbS
accbbaSbT

accbbadbT
accbbadbc

Analyse LR :
accbbadbc

acTbbadbc
aSbbadbc
aSbbaSbc
aSbbaSbT

aSbbS
Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT
acTbT
accbT
accbbS
accbbaSbT

accbbadbT
accbbadbc

Analyse LR :
accbbadbc

acTbbadbc
aSbbadbc
aSbbaSbc
aSbbaSbT

aSbbS
aSbT
Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Exemple
Soit G = hV , , P, Si avec
= {a, b, c, d}
V \ = {S, T }
6 r`egles de production :
S aSbT |cT |d
T aT |bS|c

Soit w = accbbadbc

Analyse LL :
S

aSbT
acTbT
accbT
accbbS
accbbaSbT

accbbadbT
accbbadbc

Analyse LR :
accbbadbc

acTbbadbc
aSbbadbc
aSbbaSbc
aSbbaSbT

aSbbS
aSbT
S
Th
eorie des langages
N

40 / 59

Th
eorie des langages et compilation

Constructeur
yacc/bison

danalyseur

LR

yacc : Yet Another Compiler Compiler (Unix)


bison en version libre (Linux)
1`ere version dans les annees 70 par Stephen Curtis Johnson
Prend une grammaire hors contexte en entree, produit lanalyseur
correspondant
Le programme produit est en langage C

Th
eorie des langages
N

41 / 59

Th
eorie des langages et compilation

Construire un analyseur syntaxique avec


yacc
compilateur yacc/bison
specification yacc/bison
nom.y

yacc nom.y
bison nom.y

nom.tab.c

compilateur C
nom.tab.c

gcc nom.tab.c -ly

a.out

Th
eorie des langages
N

42 / 59

Th
eorie des langages et compilation

Sp
ecifications en yacc

d
eclarations
%%
r`
egles de production et routines s
emantiques
%%
routines C et bloc principal

Th
eorie des langages
N

43 / 59

Th
eorie des langages et compilation

D
eclarations
La section des declarations contient 2 parties optionnelles
1`ere partie : declarations en C
d
elimit
ees par %{ et %}
d
eclarations des variables temporaires utilis
ees par les r`
egles de traduction
proc
edures de la deuxi`
eme et troisi`
eme section

2nde partie : declarations dunites lexicales de la grammaire


Symboles terminaux :
unit
es lexicales, d
eclar
ees par %token
%token
NOMBRE
caract`
eres, entre quotes : a, +

Symboles non terminaux : chanes de caract`eres non declarees comme


unites lexicales

Th
eorie des langages
N

44 / 59

Th
eorie des langages et compilation

R`
egles de production

Une r`egle de production de la grammaire du type :


non-terminal alt1 | alt2 | . . . | altn
secrirait en yacc :
non-terminal

:
|
|
;

alt1
alt2
...
altn

{action s
emantique 1}
{action s
emantique 2}
{action s
emantique n}

La partie gauche de la premi`ere r`egle de production est laxiome de la


grammaire

Th
eorie des langages
N

45 / 59

Th
eorie des langages et compilation

Actions s
emantiques

Une action semantique est une suite dinstructions en C


Elles sont executees `
a chaque fois quil y a reduction par la production
associee
Syntaxe dune action semantique :
Symbole $$ r
ef
erence la valeur de lattribut associ
e au non terminal de la
partie gauche de la r`
egle
Symbole $i repr
esente la valeur associ
ee au i`
eme symbole (terminal ou
non) en partie droite de la r`
egle.
Exemple :
expr : expr + term
{$$ = $1 + $3}
;

Th
eorie des langages
N

46 / 59

Th
eorie des langages et compilation

Routines annexes
En langage C
Un analyseur lexical nomme yylex() doit etre fourni
Dautres procedures comme les routines de recuperation derreur peuvent
etre ajoutees si necessaire
Lanalyseur lexical yylex() produit des couples formes dune unite lexicale
et de la valeur de lattribut associe
Si une unite lexicale est retournee, elle doit etre declaree dans la premi`ere
section de la specification yacc
La valeur de lattribut associee `
a une unite lexicale est communiquee `
a
lanalyseur syntaxique par lintermediaire de la variable yylval predefinie
dans yacc

Th
eorie des langages
N

47 / 59

Th
eorie des langages et compilation

Exemple

Grammaire
E

T
F

des expressions arithmetiques :


E + T |T
T F |F
(E )|chiffre

Lunite lexicale chiffre designe un chiffre unique compris entre 0 et 9

Th
eorie des langages
N

48 / 59

Th
eorie des langages et compilation

Exemple d
eclarations et r`
egles de production
%{
#include <ctype.h>
%}
%token CHIFFRES
%%
ligne
expr

term

facteur

:
;
:
|
;
:
|
;
:
|
;

expr \n

{printf(%d\n, $1);}

expr + term
term

{$$ = $1 + $3;}

term * facteur
facteur

{$$ = $1 * $3;}

( expr )
CHIFFRE

{$$ = $2;}

%%

Th
eorie des langages
N

49 / 59

Th
eorie des langages et compilation

Exemple Routines annexes

yylex()
{
int c;
c = getchar();
if (isdigit(c))
{
yyval = c - 0;
return CHIFFRE;
}
return c
}

Th
eorie des langages
N

50 / 59

Th
eorie des langages et compilation

Utilisation conjointe de lex et yacc

lex a ete concu pour produire des analyseurs lexicaux qui peuvent etre
utilises avec des analyseurs syntaxiques faits avec yacc
Pour utiliser lex, il faut remplacer la routine yylex() par la clause :
#include "lex.yy.c"
Specifier chaque action lex de facon `
a ce quelle retourne un terminal
connu de yacc

Th
eorie des langages
N

51 / 59

Th
eorie des langages et compilation

Utilisation conjointe de lex et yacc

Specification lex : fichier nom.l


Specification yacc : fichier synt.y
Compilation :
lex nom.l
yacc synt.y
gcc -ly -ll y.tab.c
On obtient un executable a.out qui permet de traduire le langage desire

Th
eorie des langages
N

52 / 59

Th
eorie des langages et compilation

Th
eorie des langages et compilation

Structure dun compilateur


Analyse lexicale
Analyse syntaxique
Analyse semantique
Conclusion

Th
eorie des langages
N

53 / 59

Th
eorie des langages et compilation

Analyse s
emantique - pourquoi?

Correction syntaxique insuffisante


Exemple : 3 + true > 2 syntaxiquement correct
Necessite dune analyse semantique

Th
eorie des langages
N

54 / 59

Th
eorie des langages et compilation

Analyse s
emantique - cest quoi?

Dans le compilateur dun langage de programmation :


Calcul dun arbre abstrait
D
ecor
e par des informations qui pr
eparent la g
en
eration de code (ex :
adresses m
emoire)
V
erifications s
emantiques : de type, des d
eclarations, etc.

Applications de traitement de donnees textuelles : calculs divers.

Th
eorie des langages
N

55 / 59

Th
eorie des langages et compilation

Analyse s
emantique - comment?

Lanalyse semantique calcule des donnees (ex : types, arbres)


Comment exprimer ces calculs ?
Le plus naturel est de le faire en fonction de sa grammaire : on parle de
traduction dirigee par la syntaxe
On enrichit les grammaires algebriques par 2 concepts :
donn
ees
calculs

et on obtient une grammaire attribuee

Th
eorie des langages
N

56 / 59

Th
eorie des langages et compilation

Grammaire attribu
ee, informellement

Cest une grammaire algebrique, plus :


des attributs (les donn
ees) associ
es aux terminaux et non-terminaux
des r`
egles (ou actions s
emantiques) associ
ees aux productions (les calculs
des donn
ees)

Exemple :
E E +T
{E0 .val = E1 .val + T .val}

Th
eorie des langages
N

57 / 59

Th
eorie des langages et compilation

Th
eorie des langages et compilation

Structure dun compilateur


Analyse lexicale
Analyse syntaxique
Analyse semantique
Conclusion

Th
eorie des langages
N

58 / 59

Th
eorie des langages et compilation

Conclusion
Partie analyse: s
epare les 6= constituants Programme source
du prog. source et produit une
repr
esentation interm
ediaire

Analyseur lexical

Analyseur syntaxique

Analyseur s
emantique
Table des
symboles

Erreurs
G
en
erateur de code interm
ediaire

Optimisateur de code

G
en
erateur de code
Partie synth`
ese: g
en`
ere le prog. cible `
a

Programme cible

partir de la repr
esentation interm
ediaire
Th
eorie des langages
N

59 / 59

Вам также может понравиться

  • MAITRISER Python : De l'Apprentissage aux Projets Professionnels
    MAITRISER Python : De l'Apprentissage aux Projets Professionnels
    От Everand
    MAITRISER Python : De l'Apprentissage aux Projets Professionnels
    Оценок пока нет
  • Maitrisons VI / VIM sous Linux
    Maitrisons VI / VIM sous Linux
    От Everand
    Maitrisons VI / VIM sous Linux
    Оценок пока нет
  • Compilation 2
    Compilation 2
    Документ184 страницы
    Compilation 2
    Simo Sirage Ddine
    100% (1)
  • Cours Compilation
    Cours Compilation
    Документ8 страниц
    Cours Compilation
    Elbaz Abdelilah
    Оценок пока нет
  • Pilation
    Pilation
    Документ61 страница
    Pilation
    Meryem Alami
    Оценок пока нет
  • TP2 Analyse Syntaxique
    TP2 Analyse Syntaxique
    Документ2 страницы
    TP2 Analyse Syntaxique
    info plus
    Оценок пока нет
  • Compilation
    Compilation
    Документ343 страницы
    Compilation
    arch stanton
    Оценок пока нет
  • Lex Flex (Compilation)
    Lex Flex (Compilation)
    Документ21 страница
    Lex Flex (Compilation)
    chãymãę el fechtali
    Оценок пока нет
  • Compilation
    Compilation
    Документ184 страницы
    Compilation
    samir2010
    100% (2)
  • Mi Compilation-Analyse Lexicale Syntaxique
    Mi Compilation-Analyse Lexicale Syntaxique
    Документ60 страниц
    Mi Compilation-Analyse Lexicale Syntaxique
    api-248201264
    Оценок пока нет
  • Tdcompil
    Tdcompil
    Документ11 страниц
    Tdcompil
    يوسف مرزوق
    Оценок пока нет
  • Projet Compilation - Analyseur Lexical en Java
    Projet Compilation - Analyseur Lexical en Java
    Документ18 страниц
    Projet Compilation - Analyseur Lexical en Java
    Stephane Mbia
    Оценок пока нет
  • CH05 Analyse Ascendante
    CH05 Analyse Ascendante
    Документ78 страниц
    CH05 Analyse Ascendante
    elmoundhir loucif
    Оценок пока нет
  • TD1
    TD1
    Документ2 страницы
    TD1
    Loubna ENNAJI
    Оценок пока нет
  • Mi 2an Emd thl3 PDF
    Mi 2an Emd thl3 PDF
    Документ1 страница
    Mi 2an Emd thl3 PDF
    zaki
    Оценок пока нет
  • Cours Compilation
    Cours Compilation
    Документ4 страницы
    Cours Compilation
    infcom
    Оценок пока нет
  • Manuel Flex
    Manuel Flex
    Документ4 страницы
    Manuel Flex
    laroui
    Оценок пока нет
  • tp3 Compilation
    tp3 Compilation
    Документ5 страниц
    tp3 Compilation
    Chouichi Ghada
    100% (1)
  • Compilation
    Compilation
    Документ47 страниц
    Compilation
    Emma Hcn
    Оценок пока нет
  • THL Rattrapage 2017-18
    THL Rattrapage 2017-18
    Документ1 страница
    THL Rattrapage 2017-18
    Emna Kanzari
    Оценок пока нет
  • Javacc
    Javacc
    Документ29 страниц
    Javacc
    karincayazilim
    100% (1)
  • Manuel Bison
    Manuel Bison
    Документ2 страницы
    Manuel Bison
    Willer Costigan
    Оценок пока нет
  • Cours HTML
    Cours HTML
    Документ9 страниц
    Cours HTML
    Driss El Hadaoui
    Оценок пока нет
  • Cours Lex Yacc
    Cours Lex Yacc
    Документ9 страниц
    Cours Lex Yacc
    tolmous
    Оценок пока нет
  • Analyse Syntaxique Et Compilation PDF
    Analyse Syntaxique Et Compilation PDF
    Документ12 страниц
    Analyse Syntaxique Et Compilation PDF
    halim
    Оценок пока нет
  • TP 1
    TP 1
    Документ4 страницы
    TP 1
    Marcel Sarr
    Оценок пока нет
  • TD2
    TD2
    Документ3 страницы
    TD2
    Loubna ENNAJI
    100% (1)
  • Flex Bison
    Flex Bison
    Документ44 страницы
    Flex Bison
    Med Aymen
    Оценок пока нет
  • UMLand Star UML
    UMLand Star UML
    Документ13 страниц
    UMLand Star UML
    Moncef Computer
    Оценок пока нет
  • COMPIL Examen Correction120112
    COMPIL Examen Correction120112
    Документ2 страницы
    COMPIL Examen Correction120112
    Othmane Bén
    Оценок пока нет
  • Cours Compilation
    Cours Compilation
    Документ61 страница
    Cours Compilation
    chfakht
    Оценок пока нет
  • Chap II Analyse Lexicale
    Chap II Analyse Lexicale
    Документ17 страниц
    Chap II Analyse Lexicale
    Achraf Debailia
    Оценок пока нет
  • Corrige GL 2021
    Corrige GL 2021
    Документ2 страницы
    Corrige GL 2021
    Papi
    Оценок пока нет
  • TD Compilation
    TD Compilation
    Документ4 страницы
    TD Compilation
    Laurent Niore
    Оценок пока нет
  • Cours Csharp Collection
    Cours Csharp Collection
    Документ59 страниц
    Cours Csharp Collection
    Tuni Games
    Оценок пока нет
  • Ch4 - Les Automates À Piles
    Ch4 - Les Automates À Piles
    Документ20 страниц
    Ch4 - Les Automates À Piles
    Yasmine Tlili
    Оценок пока нет
  • Polycopealgo1 PDF
    Polycopealgo1 PDF
    Документ138 страниц
    Polycopealgo1 PDF
    ABDELGHANI LOUBCHIR
    Оценок пока нет
  • Compilation 2
    Compilation 2
    Документ20 страниц
    Compilation 2
    Bouimizar
    Оценок пока нет
  • Bash Scripts Exercices Solutions tp3
    Bash Scripts Exercices Solutions tp3
    Документ6 страниц
    Bash Scripts Exercices Solutions tp3
    billyzebill
    Оценок пока нет
  • Langage SQL
    Langage SQL
    Документ54 страницы
    Langage SQL
    Narutopix Pix
    Оценок пока нет
  • Analyse Lexicale
    Analyse Lexicale
    Документ6 страниц
    Analyse Lexicale
    sailor21316
    Оценок пока нет
  • Petite Histoire UML
    Petite Histoire UML
    Документ26 страниц
    Petite Histoire UML
    manolito3000
    Оценок пока нет
  • Transparents TP THL
    Transparents TP THL
    Документ108 страниц
    Transparents TP THL
    نو ر'
    Оценок пока нет
  • TP1 Compilation
    TP1 Compilation
    Документ6 страниц
    TP1 Compilation
    Emna Rekik
    Оценок пока нет
  • C
    C
    Документ76 страниц
    C
    Fiére D'étre Ŝiwar
    Оценок пока нет
  • TD2 Compilation
    TD2 Compilation
    Документ2 страницы
    TD2 Compilation
    infcom
    Оценок пока нет
  • La 3 Naya
    La 3 Naya
    Документ5 страниц
    La 3 Naya
    alonsop
    Оценок пока нет
  • TD1 de Compilation
    TD1 de Compilation
    Документ2 страницы
    TD1 de Compilation
    BENYAHIA NESRINE
    100% (1)
  • TP de Compilation JFlex
    TP de Compilation JFlex
    Документ5 страниц
    TP de Compilation JFlex
    ChaabaAyoub
    Оценок пока нет
  • Révision Corrigée
    Révision Corrigée
    Документ14 страниц
    Révision Corrigée
    karim
    Оценок пока нет
  • Algorithme
    Algorithme
    Документ103 страницы
    Algorithme
    Nabil_Ben_8294
    Оценок пока нет
  • Cours Compilation 1
    Cours Compilation 1
    Документ78 страниц
    Cours Compilation 1
    llfreaky
    Оценок пока нет
  • Pile Et File
    Pile Et File
    Документ4 страницы
    Pile Et File
    Skander Tmar
    Оценок пока нет
  • Cours Visual Basic PDF
    Cours Visual Basic PDF
    Документ24 страницы
    Cours Visual Basic PDF
    KhardaniMaamer
    Оценок пока нет
  • Cours POO JAVA PARTIE1
    Cours POO JAVA PARTIE1
    Документ95 страниц
    Cours POO JAVA PARTIE1
    Oussama Rachik
    Оценок пока нет
  • Cours Algorithme
    Cours Algorithme
    Документ52 страницы
    Cours Algorithme
    H-Kati
    Оценок пока нет
  • Poo Java PDF
    Poo Java PDF
    Документ42 страницы
    Poo Java PDF
    Nizar Mouhssine
    Оценок пока нет
  • 1 Présentation Compilation
    1 Présentation Compilation
    Документ33 страницы
    1 Présentation Compilation
    mohammadine
    Оценок пока нет
  • 1 Présentation Compilation
    1 Présentation Compilation
    Документ33 страницы
    1 Présentation Compilation
    mohammadine
    Оценок пока нет
  • Compilation 1
    Compilation 1
    Документ37 страниц
    Compilation 1
    Bouimizar
    Оценок пока нет
  • Etablir Des Bulletins de Paie - Cours
    Etablir Des Bulletins de Paie - Cours
    Документ10 страниц
    Etablir Des Bulletins de Paie - Cours
    Grégoire Koulet
    Оценок пока нет
  • Ecart Sur Charge Indirecte
    Ecart Sur Charge Indirecte
    Документ12 страниц
    Ecart Sur Charge Indirecte
    Sahbi Sk
    100% (1)
  • Présentation Méthode ABC 2010-2011
    Présentation Méthode ABC 2010-2011
    Документ23 страницы
    Présentation Méthode ABC 2010-2011
    Hams Mohamed
    Оценок пока нет
  • Gest Stocks Et Approvs PDF
    Gest Stocks Et Approvs PDF
    Документ21 страница
    Gest Stocks Et Approvs PDF
    sorojacques5529
    100% (1)
  • ADStocks
    ADStocks
    Документ11 страниц
    ADStocks
    Ziko Itchi
    Оценок пока нет
  • Analyse Des Écarts
    Analyse Des Écarts
    Документ7 страниц
    Analyse Des Écarts
    arshakunis
    Оценок пока нет
  • Chap3 Forget PDF
    Chap3 Forget PDF
    Документ56 страниц
    Chap3 Forget PDF
    sondes
    Оценок пока нет
  • L L6 S
    L L6 S
    Документ289 страниц
    L L6 S
    Sahbi Sk
    100% (1)
  • INTER Mesure Et Analyse Du Poste de Travail 2021
    INTER Mesure Et Analyse Du Poste de Travail 2021
    Документ4 страницы
    INTER Mesure Et Analyse Du Poste de Travail 2021
    Sahbi Sk
    Оценок пока нет
  • Green Belt Lean Six Sigma - Etude de Cas (ID 200) - 0
    Green Belt Lean Six Sigma - Etude de Cas (ID 200) - 0
    Документ3 страницы
    Green Belt Lean Six Sigma - Etude de Cas (ID 200) - 0
    Sahbi Sk
    Оценок пока нет
  • Exercice Loi Normale
    Exercice Loi Normale
    Документ3 страницы
    Exercice Loi Normale
    Yassine Guisser
    100% (2)
  • Template Article JRST 2017
    Template Article JRST 2017
    Документ2 страницы
    Template Article JRST 2017
    Sahbi Sk
    Оценок пока нет
  • Elaboration Strategie
    Elaboration Strategie
    Документ19 страниц
    Elaboration Strategie
    adilcris
    Оценок пока нет
  • Memoire LVMH
    Memoire LVMH
    Документ45 страниц
    Memoire LVMH
    yunnnnnnyy
    Оценок пока нет
  • Poly Algo
    Poly Algo
    Документ159 страниц
    Poly Algo
    maherhamdi
    Оценок пока нет
  • 79864834gestion Financiere Cours
    79864834gestion Financiere Cours
    Документ36 страниц
    79864834gestion Financiere Cours
    simo ab
    Оценок пока нет
  • Gruau, Cyril - Conception D'une Base de Données (ENSMP, 2006)
    Gruau, Cyril - Conception D'une Base de Données (ENSMP, 2006)
    Документ44 страницы
    Gruau, Cyril - Conception D'une Base de Données (ENSMP, 2006)
    samca59
    100% (1)
  • Introduction Générale À La Gestion
    Introduction Générale À La Gestion
    Документ101 страница
    Introduction Générale À La Gestion
    رجل المستحيل
    Оценок пока нет
  • Gessto 1
    Gessto 1
    Документ26 страниц
    Gessto 1
    Mohsen Saidi
    Оценок пока нет
  • 2 Connaissance Des Marches-Avec Corrige - 2007
    2 Connaissance Des Marches-Avec Corrige - 2007
    Документ55 страниц
    2 Connaissance Des Marches-Avec Corrige - 2007
    Houda Berrada
    Оценок пока нет
  • Part1 Pointet
    Part1 Pointet
    Документ36 страниц
    Part1 Pointet
    أبو نافع بن أحمد
    Оценок пока нет
  • Six Leviers Pour Ameliorer L Apprentissage Des Etudiants Du Superieur
    Six Leviers Pour Ameliorer L Apprentissage Des Etudiants Du Superieur
    Документ15 страниц
    Six Leviers Pour Ameliorer L Apprentissage Des Etudiants Du Superieur
    Sahbi Sk
    Оценок пока нет
  • Template Article JRST 2017
    Template Article JRST 2017
    Документ2 страницы
    Template Article JRST 2017
    Sahbi Sk
    Оценок пока нет
  • Strategie 2011 Partie 3
    Strategie 2011 Partie 3
    Документ28 страниц
    Strategie 2011 Partie 3
    gokuken
    Оценок пока нет
  • Crperf PDF
    Crperf PDF
    Документ24 страницы
    Crperf PDF
    Saad Abd
    Оценок пока нет
  • Thèse
    Thèse
    Документ29 страниц
    Thèse
    Sahbi Sk
    Оценок пока нет
  • Poly Algo
    Poly Algo
    Документ159 страниц
    Poly Algo
    maherhamdi
    Оценок пока нет
  • Support Cours - Comprendre Lese PDF
    Support Cours - Comprendre Lese PDF
    Документ43 страницы
    Support Cours - Comprendre Lese PDF
    Sahbi Sk
    Оценок пока нет
  • These - v5 Tic Et Ens Sup2017
    These - v5 Tic Et Ens Sup2017
    Документ334 страницы
    These - v5 Tic Et Ens Sup2017
    Sahbi Sk
    Оценок пока нет
  • MSP
    MSP
    Документ200 страниц
    MSP
    Hassen Houssi
    Оценок пока нет
  • Chap
    Chap
    Документ6 страниц
    Chap
    patrickmboumbou6
    Оценок пока нет
  • TD Methode Simplexe
    TD Methode Simplexe
    Документ2 страницы
    TD Methode Simplexe
    Papa Ndiaye
    Оценок пока нет
  • Matlab MMC-SMP6
    Matlab MMC-SMP6
    Документ18 страниц
    Matlab MMC-SMP6
    Hamid Inekach
    Оценок пока нет
  • Page de Garde Dans LateX - Forum Mathématiques - 430852
    Page de Garde Dans LateX - Forum Mathématiques - 430852
    Документ3 страницы
    Page de Garde Dans LateX - Forum Mathématiques - 430852
    Stimphat Jean Colson
    Оценок пока нет
  • Expo CP
    Expo CP
    Документ2 страницы
    Expo CP
    awayombe2021
    Оценок пока нет
  • Cours Math ST-SM
    Cours Math ST-SM
    Документ208 страниц
    Cours Math ST-SM
    eduppz
    Оценок пока нет
  • Correction DS2 4eme
    Correction DS2 4eme
    Документ1 страница
    Correction DS2 4eme
    darknesss34
    Оценок пока нет
  • Projet
    Projet
    Документ31 страница
    Projet
    chrif el fahsi
    Оценок пока нет
  • Mémoire
    Mémoire
    Документ29 страниц
    Mémoire
    Colombeau
    Оценок пока нет
  • Poulies Et Courroies de Transmission. Données Numériques. (O)
    Poulies Et Courroies de Transmission. Données Numériques. (O)
    Документ23 страницы
    Poulies Et Courroies de Transmission. Données Numériques. (O)
    Diese
    Оценок пока нет
  • Statistica 2004 - Version6
    Statistica 2004 - Version6
    Документ19 страниц
    Statistica 2004 - Version6
    hind
    Оценок пока нет
  • Chaines de Markov
    Chaines de Markov
    Документ5 страниц
    Chaines de Markov
    HeIsMyGoal
    Оценок пока нет
  • Exercices Program Mat Ion Java
    Exercices Program Mat Ion Java
    Документ8 страниц
    Exercices Program Mat Ion Java
    Mouna Badis
    Оценок пока нет
  • Cours Structures de Donnees
    Cours Structures de Donnees
    Документ107 страниц
    Cours Structures de Donnees
    Saad Chakkor
    100% (2)
  • 3 PGCD Et PPMC
    3 PGCD Et PPMC
    Документ11 страниц
    3 PGCD Et PPMC
    lvtmath
    100% (2)
  • Cours Calcul D Ouvrages PDF
    Cours Calcul D Ouvrages PDF
    Документ49 страниц
    Cours Calcul D Ouvrages PDF
    joel
    Оценок пока нет
  • MM624-042
    MM624-042
    Документ124 страницы
    MM624-042
    bouchra oulhaj
    Оценок пока нет
  • Le Binaire PDF
    Le Binaire PDF
    Документ36 страниц
    Le Binaire PDF
    EL KANDOUSSI KM
    Оценок пока нет
  • Compil PC-1
    Compil PC-1
    Документ138 страниц
    Compil PC-1
    Williams Kouassi
    Оценок пока нет
  • Comment Construire Sa Carte de Contrôle
    Comment Construire Sa Carte de Contrôle
    Документ5 страниц
    Comment Construire Sa Carte de Contrôle
    abdelhafid
    Оценок пока нет
  • Chap3 TD Induction Mobile Corr
    Chap3 TD Induction Mobile Corr
    Документ11 страниц
    Chap3 TD Induction Mobile Corr
    t123med
    Оценок пока нет
  • tp°2COMMANDE VECTORILLE DIRACTEpdf
    tp°2COMMANDE VECTORILLE DIRACTEpdf
    Документ19 страниц
    tp°2COMMANDE VECTORILLE DIRACTEpdf
    مكتبة الأماني
    Оценок пока нет
  • M0166MPCGF14
    M0166MPCGF14
    Документ115 страниц
    M0166MPCGF14
    Ayoub Alaoui
    Оценок пока нет
  • Support Spss TD
    Support Spss TD
    Документ32 страницы
    Support Spss TD
    Aymane Allak
    50% (2)
  • Metodo de Gauss Pivoteo Total
    Metodo de Gauss Pivoteo Total
    Документ2 страницы
    Metodo de Gauss Pivoteo Total
    daniels
    Оценок пока нет
  • Zlpep Fi 0026 CD V2
    Zlpep Fi 0026 CD V2
    Документ76 страниц
    Zlpep Fi 0026 CD V2
    Juan Carlos Hermitaño Villegas
    Оценок пока нет
  • 07 Deformee Des Poutres
    07 Deformee Des Poutres
    Документ18 страниц
    07 Deformee Des Poutres
    ddhthr2345
    Оценок пока нет
  • Intérêts Composés REL Charfeddine Jihene
    Intérêts Composés REL Charfeddine Jihene
    Документ7 страниц
    Intérêts Composés REL Charfeddine Jihene
    kramo
    Оценок пока нет
  • Codeur Inc
    Codeur Inc
    Документ4 страницы
    Codeur Inc
    assiahakmi
    Оценок пока нет
  • Cours AO V1
    Cours AO V1
    Документ150 страниц
    Cours AO V1
    SkizZ101
    Оценок пока нет