0% ont trouvé ce document utile (0 vote)
14 vues2 pages

Organisation des données en compilation

Transféré par

Tüpãč Shákûr
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
14 vues2 pages

Organisation des données en compilation

Transféré par

Tüpãč Shákûr
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

USTHB

Faculté d’Informatique
1ère année Master IL et MIV
Module Compilation2 Année Universitaire : 2022/2023

TD N° 3 :
Organisation des données à l'exécution

Exercice 1:

Soit le programme Fortran suivant :


Program
Integer V, W, X, Y, Z
Integer D(5), E(3)
Common V, Z
Equivalence Z, D(2)
Equivalence D(4), E(1)
..........
Call Sub(W, Y)
Stop
End.
Subroutine Sub(a, b)
Integer A, B, C(5), E(3), F
Common A, B
Equivalence C(3), F
Equivalence E(1), C(4)
........
Return
End.
Donner les zones de données du PP, du SP et du Common

Exercice 2:

Soit le programme Algol suivant :


Programme Principal
Begin
Real V, U; Integer array A1[1:V]; Integer J;
L1: Begin
Integer array A2[1:U]; Integer K;
Procedure X(C, D); Real C,D;
Begin
Array A3[1:J; 1:2*J];
L3: A3[K, 1]:= A1[K]+V;
End
L2: A1[K]:=K-V;
End;
V:=U+J;
End;
a-Donner le contenu de la pile de données aux instructions L1, L2 et L3 .
b-Calculer les adresses absolues des variables de L3.
Exercice 3 :
Soit le programme Algol suivant :
Programme essai
L1: Begin Integer I, L, n, array A[1:L; -1:2*L; 0:L+2];
L2: Procédure Gamme(X1); X1: Integer;
Begin Boolean S; Integer P, Array B[I:P];
L3: Begin Real X, Y;
L4: X:= (P/Y)+6*A[I,L,3];
X:=(X+((-P)/2))*(P-P/ Y)
L5: End;
End;
L6: Procédure Beta(X2); X2: Integer;
Begin Integer a,b, m, array C[-L:L], Val;
L7 : I:=0
a:=n-1
b:=m
t1:=5*a
I:=I+1
t2:=C[t1]
Tantque I>L+6 Faire K:=8*3,14
I:=I+3
D[I]:=K
Fait
t3:=5*a
z:=C[t3]
I:=I+1
J:=7*I
End;
L8:End.
a-Donner Les différents états de la pile aux étiquettes L1, L2, L3, L4, L5, L6, L7, et L8.
b- Calculer les adresses absolues des variables de L4 sachant que les éléments de A sont rangés
colonne par colonne dans une zone contiguë.

Exercice 4:
Donner les différents états de pile aux étiquettes pour les portions de programme suivantes :
PP Begin Proc A;
Begin Appel := Appel+1;
Si Appel <= 2 alors L3 : A ;
Appel := Appel-1;
fsi ;
End ;
Appel := 1 ;
L1 : A ;
L2: End;
PP Begin Proc A;
Begin L2 :Appel := Appel+1 ;
Si Appel <= 2 alors L3 : A;
Appel := Appel-1;
Sinon L4 : A ;
Appel :=Appel-1;
fsi ;
End ;
Appel := 1 ;
L1: A;
L5: End;

Vous aimerez peut-être aussi