La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Expressions logiques Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)

Présentations similaires


Présentation au sujet: "Expressions logiques Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)"— Transcription de la présentation:

1 Expressions logiques Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)

2 Sémantique des expressions logiques: Introduction Les expressions logiques sont traitées de la même façon que les expressions arithmétiques Ou est considéré comme + et – Et est considéré comme * et / Objectif : découper l’expression en opérations élémentaires. (Expression devient un programme) Il s’agit de générer les quadruplés. Il s’agit d’insérer Les fonctions sémantiques quelque part dans les règles syntaxiques. Aucune optimisation n’est considérée

3 Sémantique des expressions logiques : Quadruplés Opérateurs binaires : Oper= Op || Type, Op dans {Ou, Et } et Type = ‘B’ pour Booléen B, C : pointeurs dans TABOB vers les opérandes D : pointeur dans TABOB sur l’objet qui va contenir le résultat Opérateurs unaires : Oper dans {Non} B : pointeur dans TABOB vers l’opérande C : non utilisé D : pointeur dans TABOB sur l’objet qui va contenir le résultat (Oper, B, C, D )

4 Expressions logiques : Déclarations Sep dans {:, Un, Une, Des} Cste désigne une constante numérique entière Idf désigne un identificateur Opr dans {, >=, =, <> } Opa dans { +, -, } Opm dans { *, /, } Sign dans {+, -} Ou Et

5 Expressions logiques : Déclarations  [ ~Soit|Soient~ ] Debut Fin [;]  ;{ [~Soit|Soient~] ;}*  [Sep ]  Idf {, Idf}*  Entier | Booleen

6 Expressions logiques : Instructions  { ; }*  Idf := | Lire ( Idf {, Idf }* ) | Ecrire ( {, }* ) |

7 Expressions logiques : Expressions  [ Opr ]  [Sign] { Opa }*  {Opm }*  Idf | Cste | ( ) | Non | Vrai | Faux

8 Sémantique des expressions logiques : déclaration des variables booléennes Pour chaque Identificateur déclaré comme BOOLEEN : - Le mettre dans la table des symboles -Lui attribuer une adresse relative et le mettre dans la table des objets (soit Pt son emplacement) -Générer le quadruplé (‘DB’, Pt,, )

9 Sémantique des expressions logiques : Fonctions sémantiques  [ Opr ]  { Opa }*  {Opm }*  Idf | Cste | ( ) Non | Vrai | Faux F1 F2 F5F4 F6 F7F8 F3 Opm=‘ET’ Opa=‘OU’

10 Sémantique des expressions logiques : Fonctions sémantiques F1 F2 Vérifier que l’identificateur Idf est déclaré, sinon Erreur. Soit Pt1 son emplacement dans TABOB. Retourner (Pt1) Générer une variable temporaire dans TABOB. Soit Ptx son emplacement dans TABOB.Générer le quadruplet (‘Non’, pt1,, Ptx). Retourner (Ptx).  Idf | Cste | ( ) Non | ~Vrai | Faux~ F1 F2F3 Si la constante n’existe pas la mettre dans TABCONS et TABOB. Soit Pt1 son emplacement dans TABOB. Retourner (Pt1)

11 Sémantique des expressions logiques : Fonctions sémantiques F4 Sauvegarder l’opérateur dans une variable Op et le résultat de dans Temp1 (emplacement dans TABOB) F5 Récupérer le résultat de dans Temp2 (emplacement dans TABOB). Vérifier l’incompatibilité des types de Temp1 et Temp2. Générer une variable temporaire dans TABOB. Soit Ptx son emplacement dans TABOB.Générer le quadruplet (Op, Temp1, Temp2, Ptx). Retourner (Ptx).  {Opm }* F4F5

12 Sémantique des expressions logiques : Fonctions sémantiques F6 Sauvegarder le résultat de dans Temp1 (emplacement dans TABOB). Retourner (Temp1)  F6

13 Sémantique des expressions logiques : Fonctions sémantiques F7 Sauvegarder l’opérateur dans une variable Op Récupérer le résultat de dans Temp2 (emplacement dans TABOB). Vérifier l’incompatibilité des types de Temp1 et Temp2. Générer une variable temporaire dans TABOB. Soit Ptx son emplacement dans TABOB.Générer le quadruplet (Op, Temp1, Temp2, Ptx). Retourner (Ptx). F8 (suite) { Opa }* F7F8

14 Sémantique des expressions logiques : Exemple soit a, b, c des booleens; debut a:=faux;b:=vrai;c:= faux; ecrire( non(a ou b) et c) fin ‘Faux’ ‘Vrai’ TABCONS 0 1 En fin de compilation, programme source = table des quadruplés + TABOB + TABCONS + LONGZDD ‘L’‘B’0 ‘L’‘B’1 ‘L’‘B’2 ‘C’‘B’0 ‘C’‘B’1 ‘X’‘B’4 ‘X’‘B’5 ‘X’‘B’ TABOB 6 LONGZDD 3 4 Quadruplés pour l’expression … ‘OU’015 ‘NON’56 ‘ET’627 … 5 6 7


Télécharger ppt "Expressions logiques Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)"

Présentations similaires


Annonces Google