Sémantique des déclarations pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure...

download Sémantique des déclarations pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) http://zegour.esi.dz/ email: d_zegour@esi.dzd_zegour@esi.dz.

of 14

  • date post

    04-Apr-2015
  • Category

    Documents

  • view

    105
  • download

    1

Embed Size (px)

Transcript of Sémantique des déclarations pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure...

  • Page 1
  • Smantique des dclarations pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Suprieure dInformatique (ESI) http://zegour.esi.dz/ email: d_zegour@esi.dzd_zegour@esi.dz
  • Page 2
  • Smantique des dclarations pour le langage Z minimal: Introduction Lanalyseur smantique = ensemble de fonctions smantiques dduites partir de la dfinition du langage Rle des fonctions smantiques : gnrer une forme intermdiaire en tenant compte des concepts prdfinis(organisation de la mmoire, attribution des adresses, tables de compilation, ) Il sagit dune forme trs proche du langage machine : Quadruplets, Triplets, Les fonctions smantiques sont insres quelque part dans les rgles syntaxiques.
  • Page 3
  • Smantique des dclarations pour le langage Z minimal: Quadruplets Le programme source est transform et dcoup en oprations lmentaires trs proches du langage machine Opration lmentaire = Quadruplet Quadruplet = (A, B, C, D) A:Code Opration B, C, D:Paramtres de lopration Les paramtres de lopration sont des pointeurs vers les tables de compilation
  • Page 4
  • Smantique des dclarations pour le langage Z minimal: Rsultats de la phase smantique Quadrupls Tables de compilation + = Forme intermdiaire
  • Page 5
  • Smantique des dclarations pour le langage Z minimal: Analyse smantique Analyse syntaxique Fonctions smantiques + = Analyse smantique
  • Page 6
  • Smantique des dclarations pour le langage Z minimal: Quadrupls pour dclarations Comme lallocation des variables est dynamique, Pour chaque dclaration de variable nous devons gnrer 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 lobjet C et D non utiliss Pour le langage minimal, un seul type de quadrupl : (DE, B,, )
  • Page 7
  • Smantique des dclarations pour le langage Z minimal: le problme O insrer les fonctions smantiques dans lanalyseur syntaxique pour faire les vrifications quil faut et gnrer pour chaque dclaration de variable le quadrupl correspondant une dclaration ?
  • Page 8
  • Smantique des dclarations pour le langage Z minimal: Syntaxe des dclarations [ ~Soit|Soient~ ] Debut Fin [;] ;{ [~Soit|Soient~] ;}* [Sep ~] Idf {, Idf}* Entier Sep dans { :, Un, Une, Des }
  • Page 9
  • Smantique des dclarations pour le langage Z minimal: Dfinition smantique La partie dclaration consiste dfinir lensemble des variables utilises dans le programme source Pour le langage Z minimal, seules les variables entires sont autorises Un identificateur ne doit pas dsigner deux variables diffrentes Le type peut ne pas tre donn. Par dfaut cest Entier (Rgle )
  • Page 10
  • Smantique des dclarations pour le langage Z minimal: Fonctions smantiques [ ~Soit|Soient~ ] Debut Fin [;] ;{ [~Soit|Soient~] ;}* [Sep ] Idf {, Idf }* Entier Sep dans { :, Un, Une, Des } F1 F3F4F2
  • Page 11
  • Smantique des dclarations pour le langage Z minimal: Fonctions smantiques F1 Vrifier que lidentificateur Idf nest pas dclar, sinon Erreur (non dans L et non dans la table des symboles) Sauvegarder lidentificateur Idf dans une liste L Idf {, Idf }* F1
  • Page 12
  • Smantique des dclarations pour le langage Z minimal: Fonctions smantiques F4 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) -Gnrer le quadrupl (D+Type, Pt,, ) Par dfaut le type est Entier. Initialiser donc une variable, soit Type, avec E ( Entier) F3 Si le type est spcifi modifier la valeur de la variable Type avec le type spcifi F2 [Sep ] F2F3F4
  • Page 13
  • Smantique des dclarations pour le langage Z minimal : Exemple Soit A, B, C des Entiers; Debut A := 3; B := 5; C := 12; Fin 3 5 12 TABCONS 0 1 2 En fin de compilation, programme source = table des quadrupls + TABOB + TABCONS + LONGZDD LE 0 LE1 LE2 CE0 CE1 CE2 0 1 2 TABOB 3 LONGZDD 0 1 2 Quadrupls pour les dclarations DE0 1 2 3 4 5
  • Page 14
  • Smantique des dclarations pour le langage Z minimal : Implmentation Module sur la table des quadrupls: New_quadruple (P1,P2,P3,P4) Indice dans la table des quadrupls o le quadrupl est cr, -1 si chec Dfinir une limite pour la table des quadrupls LimitQuad = une valeur arbitraire