Title
Mini compilateur Pascal
COMPILATION MINI-PROJET MINI COMPILATEUR PASCAL
EMSI
Compilation: projet
Mini compilateur Pascal
STOCKAGE DES OBJETS SEMANTIQUES
EMSI
R. Oulad Haj Thami
Compilation: projet
Mini compilateur Pascal
PROGRAM ::= BLOCK ::= CONSTS ::= VARS ::= INSTS ::=
program ID ; BLOCK . CONSTS VARS INSTS const ID = NUM ; { ID = NUM ; } | ε var ID { , ID } ; | ε begin INST { ; INST } end
•Les identificateurs et les constantes sont les objets sémantiques du programme •Ils seront utilisés lors du calcul de la sémantique du programme Il faut les mémoriser avec leurs propriétés TABLE DES SYMBOLES
EMSI
R. Oulad Haj Thami
1
Compilation: projet
Mini compilateur Pascal CH test toto titi x y CLS
ID_TOKEN ID_TOKEN ID_TOKEN ID_TOKEN
IL FAUT INSERER LES IDENTIFICATEURS DANS LA TABLE DES SYMBOLES
EMSI
R. Oulad Haj Thami
Compilation: projet
Mini compilateur Pascal
MAIS
!
R. Oulad Haj Thami
Y a des règles sémantiques, des contrôles sémantiques
EMSI
Compilation: projet
Mini compilateur Pascal
LE CONTRÔLE SEMANTIQUE DES DECLARATIONS ET DE TYPE DES IDENTIFICATEURS
EMSI
R. Oulad Haj Thami
IDENTIFICATEURS Mots clés
Exemple: program test; const toto=12; titi=23; var x, y; begin ….. end.
ID_TOKEN
2
Compilation: projet
Mini compilateur Pascal
PROGRAM ::= BLOCK ::= CONSTS ::= VARS ::= INSTS ::=
Règles sémantiques:
program ID ; BLOCK . CONSTS VARS INSTS const ID = NUM ; { ID = NUM ; } | ε var ID { , ID } ; | ε begin INST { ; INST } end
1. Règle 1: Toutes les déclarations dans CONSTS et VARS 2. Règle 2: PAS DE DOUBLE DECLARATIONS 3. Règle 3: Apres BEGIN, tous les symboles doivent être déjà déclarés 4. Règle 4: Une constante ne peut changer de valeur dans le programme 5. Règle 5: Le ID du programme ne peut être utilisé dans le programme
EMSI
R. Oulad Haj Thami
Compilation: projet
Mini compilateur Pascal
Exemple 1: program