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

Sémantique des déclarations pour le langage Z minimal

Présentations similaires


Présentation au sujet: "Sémantique des déclarations pour le langage Z minimal"— Transcription de la présentation:

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

2 Sémantique des déclarations pour le langage Z minimal: Introduction
L’analyseur sémantique = ensemble de fonctions sémantiques déduites à partir de la définition du langage Rôle des fonctions sémantiques : générer une forme intermédiaire en tenant compte des concepts prédéfinis(organisation de la mémoire, attribution des adresses, tables de compilation, … ) Il s’agit d’une forme très proche du langage machine : Quadruplets, Triplets, … Les fonctions sémantiques sont insérées quelque part dans les règles syntaxiques.

3 Sémantique des déclarations pour le langage Z minimal: Quadruplets
Le programme source est transformé et découpé en opérations élémentaires très proches du langage machine Opération élémentaire = Quadruplet Quadruplet = (A, B, C, D) A : Code Opération B, C, D : Paramètres de l’opération Les paramètres de l’opération sont des pointeurs vers les tables de compilation

4 Sémantique des déclarations pour le langage Z minimal: Résultats de la phase sémantique
Quadruplés Forme intermédiaire = + Tables de compilation

5 Sémantique des déclarations pour le langage Z minimal: Analyse sémantique
Analyse syntaxique Analyse sémantique = + Fonctions sémantiques

6 Sémantique des déclarations pour le langage Z minimal: Quadruplés pour déclarations
Comme l’allocation des variables est dynamique, Pour chaque déclaration de variable nous devons générer le quadruplet (A, B, C, D) tel que A est de la forme ‘D’+’type’ (Type est le type de la variable) B : pointeur dans TABOB vers l’objet C et D non utilisés Pour le langage minimal, un seul type de quadruplé : (‘DE’, B, , )

7 Sémantique des déclarations pour le langage Z minimal: le problème
Où insérer les fonctions sémantiques dans l’analyseur syntaxique pour faire les vérifications qu’il faut et générer pour chaque déclaration de variable le quadruplé correspondant à une déclaration ?

8 Sémantique des déclarations pour le langage Z minimal: Syntaxe des déclarations
<Algo Z>  [ ~Soit|Soient~ <Ps> ] Debut <Lis> Fin [;] <Ps>  <S>;{ [~Soit|Soient~] <S>;}* <S>  <Li>[Sep <Typ> ~] <Li>  Idf {, Idf}* <Typ>  Entier Sep dans { :, Un, Une, Des }

9 Sémantique des déclarations pour le langage Z minimal: Définition sémantique
La partie déclaration consiste à définir l’ensemble des variables utilisées dans le programme source Pour le langage Z minimal, seules les variables entières sont autorisées Un identificateur ne doit pas désigner deux variables différentes Le type peut ne pas être donné. Par défaut c’est Entier (Règle<S>)

10 Sémantique des déclarations pour le langage Z minimal: Fonctions sémantiques
<Algo Z>  [ ~Soit|Soient~ <Ps> ] Debut <Lis> Fin [;] <Ps>  <S>;{ [~Soit|Soient~] <S>;}* <S>  <Li>[Sep <Typ> ] <Li>  Idf {, Idf }* <Typ>  Entier Sep dans { :, Un, Une, Des } F2 F3 F4 F1 F1

11 Sémantique des déclarations pour le langage Z minimal: Fonctions sémantiques
<Li> Idf {, Idf }* F1 F1 Vérifier que l’identificateur Idf n’est pas déclaré, sinon Erreur (non dans L et non dans la table des symboles) Sauvegarder l’identificateur Idf dans une liste L F1 < LI >

12 Sémantique des déclarations pour le langage Z minimal: Fonctions sémantiques
<S>  <Li>[Sep <Typ> ] F2 F3 F4 Par défaut le type est Entier. Initialiser donc une variable, soit Type, avec ‘E’ ( ‘Entier’) F2 Si le type est spécifié modifier la valeur de la variable Type avec le type spécifié F3 Pour chaque Idf dans L : - 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é (‘D’+Type, Pt, , ) F4 < S >

13 Sémantique des déclarations pour le langage Z minimal : Exemple
Soit A, B, C des Entiers; Debut A := 3; B := 5; C := 12; Fin ‘3’ ‘5’ ’12’ ‘L’ ‘E ’ ‘E’ 1 2 ‘C’ 1 1 2 2 3 TABCONS 4 5 ‘DE’ 1 2 TABOB 1 2 3 Quadruplés pour les déclarations LONGZDD En fin de compilation, programme source = table des quadruplés + TABOB + TABCONS + LONGZDD

14 Sémantique des déclarations pour le langage Z minimal : Implémentation
Module sur la table des quadruplés: New_quadruple (P1,P2,P3,P4)  Indice dans la table des quadruplés où le quadruplé est créé, -1 si Échec Définir une limite pour la table des quadruplés LimitQuad = une valeur arbitraire


Télécharger ppt "Sémantique des déclarations pour le langage Z minimal"

Présentations similaires


Annonces Google