Rapport jtable et mvc

Disponible uniquement sur Etudier
  • Pages : 9 (2243 mots )
  • Téléchargement(s) : 0
  • Publié le : 20 juin 2010
Lire le document complet
Aperçu du document
5. Production code de
Arbre syntaxique décoré (ou arbre de syntaxe abstraite)

Programmeen langa9e cible

de code: plan
. Arbre de syntaxe abstraite et sa simplificationpar réécriture ou évaluation Dârtielle . Notion d environnement dEx*ution (5.1 en ligne) . Génération de cde intermâliaire 'tode à 3 adresses" (5.2 en ligne) . Optimisation de code intermédiaire indépendante de la(paranalyse machine statique flot de contrôle/données) du -> . Production codecible(Machine abstraite concrète) de
. Allocation/assignement des registres , Générationde code cible ' Optimisationde code cible (dépendantede la machine)

Arbrede syntaxe abstraite
-> Laoroduction codeintermédiaire de s'aopuie sur lârbresyntaxique abstrait construit bê l'analyse lors svntaxioue Inst -> s/Cond alorslnstsinonlnsl
Si alors

T2

Simplification l?rbrede de par syntaxe abstraite réécriture
-> x1 . Si_alors_sinon(vrai,x1,x2) -> x2 . Si_alors_sinon(faux,x1,x2)

. . . ' .

-> Mult(x1,0) 0 -> Mult(O,xl) 0 -> Mult(xl,1) x1 -> x1 Mult(1,x1) Etc...

Simplification I'arbre syntaxe de de par évaluation partielle ,f.,abstraite
évaluation partielle : -> remplacer sa valeurune expression parcalculable moment la comoilation au de (entiers,réels,constantes, par combinés des prédéfinis) opérateurs

/\
3 7 x

/K
1 0

Environnement d'exécution : organisation la mémoire de
.Fonctions récursives ?
.Passagede paramètres(appel) ? .Allocationmémoire dynamique? .Si oui, libérationexplicite? Sur la machine cible : .Longueur des mots ou adresses? .Entités directementadressables ?.Instructionsspécifiques accès? . Etc...

général: Modèle
Code cible Données statioues Pile contrôle de
to5

2

Lecodeintermédiaire
Le code intermédiairecontient : . des variables de type de base : entier, bælé€n, flottant et éventuellement tableau "mémoire" . des oÉrations explicites : allocation, libérâtion (désallocation), de arithmétique pointeurs . des expressionsarithmétiques oubooléennessimples(utiiisant des variablestemporaires) . des sautsconditionnels non ou . des CALVRETutilisant une déclaratjonexplicite des paramètres pour leur passage. -> Le tout exprimé en termes de variables, registres(en nombre "simples" pour les calculs, ies illimité!) et jeux d'instructions transferts, les branchementset les entrées/sorties.

simplifié Codeà 3 adresses

(unextrait...)
code à 3adresses= séquenced'instructions numérotées . 1 ;= y op z (affectation bjnaire) ' x := opu y (affectation unaire) , y.=y(copie) . x[i] := y (affectation indicée) inconditionnel) . aller en (a) (branchement conditionnel) . si y op rel log z alors alleren (a) (branchement . Lire x r rcrrre y OU r oD. oDUet oo rel loo snt resoectivementdes opérateurs ("NoN" inclus) ou relationnels logiquesbinailes,unâires,-ôui r x est une adressede variable ou registre I y, z sont des adressesde variables, registres ou constantes . (a) est une adresse code, un numero du

du Génération code intermédiaire
> Traduction dirigée par la syntaxe à l'aided'une grammaire attribuée (attributs code, regel inst suiv) Génération du code pour instructions : . Gestion des branchementset étiquettes Génération du code pourexpressions booléennes : . Par évaluation systématique(ou presseuse): tous les termes sont évalués composant une expression d'une . Par évaluation court-circuit'. seuls les termes nécessaires expression sont évalués

'= ]v v.*;i

(1) I Exemples 3.vl l;:-tt t(lJr-= "
=

Iill) v : = v x x ] .='1' l l(3

(1) si x 0 alleren (5) white != 0 do x I (2) y[x] := z ylxl:= z; I ---..----.-----* ( 3)x : = x - 1 x:= x-1; | ( 4 ) a l l e re n ( 1 ) I I endwhile

(2) Exemple
l x : = v r ao u ( y e t z ) l i
/

t,tJr-:-t=r;l(z)x:=vraiout I
Évaluation paresseuse

@
Eva/ uation court-circu it

5.3.Optimisationscode du intermédiaire
-> indépendantes de la machine cible . Analyse statique de flot de données/contrôle : . Variables < constantes '> dans une partie de programme...
tracking img