Sémantique des expressions arithmétiques pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) www.zegour.uuuq.com email:

Slides:



Advertisements
Présentations similaires
Structures de données avancées : MLH (Multidimensional linear hashing)
Advertisements

Structures de données avancées : Principales structures de fichiers
Structures de données avancées : B arbres
Structures de données avancées : Principales structures de données
Structures de données avancées : MBT ( Multidimensional B-trees )
Structures de données avancées : MTH ( Multidimensional trie hashing )
Structures de données avancées : Introduction
Traitement sémantique et grammaire dattributs Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
Le langage Z Pr ZEGOUR DJAMEL EDDINE
Vue générale Pr ZEGOUR DJAMEL EDDINE
Machines de Turing Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
Sémantique des déclarations pour le langage Z minimal
Algorithmique Résume.
GEF 243B Programmation informatique appliquée Expressions et opérateurs.
C.
Introduction : Compilation et Traduction
Initiation à la programmation et algorithmique cours 3
Les bases de l’Algorithmique
Introduction : Compilation et Traduction
Partie 1 Etude de l'existant
Particularités des calculs
Question Comment le compilateur fait-il pour évaluer une expression telle que : A + B lorsque A et B sont des données de types arithmétiques différents.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Principes de programmation
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
IFT 6800 Atelier en Technologies d’information
Expressions et affectations
Séance d’introduction
Table des symboles Pr ZEGOUR DJAMEL EDDINE
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI) Plate-forme.NET.
Types de données fondamentaux
Jacques Nicolas INRIA /IRISA Rennes
Structures de données avancées : Arbres AVL & Arbres Rouge et Noir
2.1 - Historique Chapitre 2 : Introduction au langage C++
Structures complexes Pr ZEGOUR DJAMEL EDDINE
Expressions logiques Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Procédures et fonctions Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Listes linéaires chaînées Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Un survol du language C.
Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Module I3 algorithmique et programmation
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Le langage Z minimal Pr ZEGOUR DJAMEL EDDINE
Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : Arbres ‘Left Leaning Red-Black’
L’analyse lexicale Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : Arbres AA
Structures de contrôle Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Sémantique des instructions pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures simples et tableaux Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : Fichiers multidimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour.esi.dz
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Expressions sur les chaînes de caractères Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
B.Shishedjiev - Affectation1 Expressions et affectation Comment produire des nouvelles valeurs.
Une brève présentation de C# Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Fonctions standards Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
UE MAREP Cours 10 : Projet Patricia Renault UPMC 2005/2006.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) C O M P I L Z.
COMPIL - Z Compilateur visible
Fichiers Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Introduction à l’utilitaire
Objets et Actions Élémentaires.
Philippe Gandy - 15 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Introduction au langage C
Transcription de la présentation:

Sémantique des expressions arithmétiques pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)

Sémantique des expressions arithmétiques pour le langage Z minimal: Introduction Nous considérons plutôt les expressions arithmétiques et relationnelles Arithmétiques du genre (A+B)/C, Relationnelles du genre (A+B) > C 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.

Sémantique des expressions arithmétiques pour le langage Z minimal: Quadruplés Opérateurs binaires : Oper = Op || Type, Op dans {+, -, *, /} et Type = ‘E’ pour Entier 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 = Op || Type, Op dans {+, -} et Type = ‘U’ (Entier pris par défaut ) 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 )

Sémantique des expressions arithmétiques pour le langage Z minimal: Quadruplés Opérateurs binaires : Oper = Op, Op dans {, >=, =, <>} B, C : pointeurs dans TABOB vers les opérandes D : pointeur dans TABOB sur l’objet qui va contenir le résultat (Oper, B, C, D )

Sémantique des expressions arithmétiques pour le langage Z minimal: Syntaxe  [ Opr ]  [Sign] { Opa }*  {Opm }*  Idf | Cste | ( ) Cste désigne une constante numérique entière Idf désigne un identificateur Opr dans {, >=, =, <> }; Opa dans { +, - } Opm dans { *, / }; Sign dans {+, -};

Sémantique des expressions arithmétiques pour le langage Z minimal : Définition sémantique Une expression est une suite d’opérandes et d’opérateurs. Les opérandes sont des variables et/ou des constantes. La priorité des opérateurs est définie par la grammaire. Pas de conversion, toute incompatibilité de type entraîne une erreur. Le compilateur crée des variables temporaires pour ranger les résultats intermédiaires. Le compilateur ne fait pas les optimisations ( Réduction du nombre de variables temporaires utilisées).

Sémantique des expressions arithmétiques pour le langage Z minimal: Fonctions sémantiques  [ Opr ]  [Sign ] { Opa }*  {Opm }*  Idf | Cste | ( ) F1F2 F4F3 F5F6 F7F8 F9F10

Sémantique des expressions arithmétiques pour le langage Z minimal: Fonctions sémantiques F1 F2 Vérifier que l’identificateur Idf est déclaré, sinon Erreur. Soit Pt1 son emplacement dans TABOB. Retourner (Pt1) Si la constante n’existe pas la mettre dans TABCONS et TABOB. Soit Pt1 son emplacement dans TABOB. Retourner (Pt1)  Idf | Cste | ( ) F1F2

Sémantique des expressions arithmétiques pour le langage Z minimal: Fonctions sémantiques F3 Sauvegarder l’opérateur dans une variable Op et le résultat de dans Temp1 (emplacement dans TABOB) F4 Récupérer le résultat de dans Temp2 (emplacement dans TABOB). Vérifier la compatibilité 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 }* F3F4

Sémantique des expressions arithmétiques pour le langage Z minimal: Fonctions sémantiques F5 F6 Sauvegarder l’opérateur unaire dans une variable Op Sauvegarder le résultat de dans Temp1 (emplacement dans TABOB). Vérifier l’incompatibilité de Op et Temp1. Générer une variable temporaire dans TABOB. Soit Ptx son emplacement dans TABOB. Générer le quadruplet (Op, Temp1,, Ptx). Retourner (Ptx)  [Sign ] F5F6

Sémantique des expressions arithmétiques pour le langage Z minimal: Fonctions sémantiques F7 Sauvegarder l’opérateur dans une variable Op et le résultat de dans Temp1 (emplacement dans TABOB) 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 { Opa }* F7F8

Sémantique des expressions arithmétiques pour le langage Z minimal: Fonctions sémantiques F9 Sauvegarder l’opérateur dans une variable Op et le résultat de dans Temp1 (emplacement dans TABOB) F10 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).  [ Opr ] F9F10

Sémantique des expressions arithmétiques pour le langage Z minimal : Exemple SOIT A, B, C DES ENTIERS ; Res UN ENTIER ; DEBUT A := 3 ; B := 5 ; C := 12 ; Res := ( ( A+B ) / C)+(B-C ) ; FIN ‘3’ ‘5’ ’12’ TABCONS En fin de compilation, programme source = table des quadruplés + TABOB + TABCONS + LONGZDD ‘L’‘E’0 ‘L’‘E’1 ‘L’‘E’2 ‘L’‘E’3 ‘C’‘E’0 ‘C’‘E’1 ‘C’‘E’2 ‘X’‘E’4 ‘X’‘E’5 ‘X’‘E’6 ‘X’‘E’ TABOB 8 LONGZDD 3 4 Quadruplés pour l’expression … ‘+E’017 ‘/E’728 ‘-E’129 ‘+E’8910 …

Sémantique des expressions arithmétiques pour le langage Z minimal : Implémentations  Modules sur la table des objets: Génération de variables temporaires New_temp (type)  Indice dans la table des objet où l’objet est rangé, -1 si Échec Vérification de la compatibilité Error_exp (Opérateur, Opérande1, Opérande2) Détecte les erreurs sémantiques dans les expressions Retrouve les types de Operande1et Opérande2 Vérifie la compatibilité entre les types et la compatibilité entre Opérateur et type  Table des constantes: Nous supposons dans un premier temps : une table par procédure compilée Mise_en_tabcons (constante)  indice dans la table, -1 si echec