salut
j'ai un mini projet qui la réalisation d'un traducteur de code pascal vers un code 3 adresse(génération du code intermédiaire ) en utilisant flex et bison
le problème c'est comment généré les variable temp par exemple:
le fragment de programme C a=b*c+b*(b-c)*(-c) devient
avec une boucle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 (1) t1 := b*c (5) t5 := t3*t4 (2) t2 := b-c (6) t6 := t1+t5 (3) t3 := b*t2 (7) a := t6 (4) t4 := -c
: soit le fragment de code C suivant
Le code à 3 adresses correspondant est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 z=0; do { x++; if (y<10) { z=z+2*x; h=5; } else h=-5; y+=h; } while (x<=50 && z<=5*y);
si il y a quelqu'un déjà une expérience avec la compilation j'attends son aide et merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 (1) t1 := 0 (11) aller a (14) (2) z := t1 (12) t6 := -5 (3) t2 := x + 1 (13) h := t6 (4) x := t2 (14) t7 := y+h (5) si y>=10 aller a (12) (15) y := t7 (6) t3 := 2*x (16) si x>50 aller a (20) (7) t4 := t3+z (17) t8 := 5*y (8) z := t4 (18) si z>t8 aller a (20) (9) t5 := 5 (19) aller a (3) (10) h := t5 (20) ...
Partager