Structures de contrôle Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)

Slides:



Advertisements
Présentations similaires
Tris.
Advertisements

Initiation à la programmation et algorithmique cours 2
Traitement sémantique et grammaire dattributs Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
Le langage Z 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 (suite)
DECLARATION DE VARIABLES
Algorithmique Résume.
Exercices Algorithmiques
C.
Le Concept du programme enregistré
1 Révisions. 2 Tableaux non contraints Déclaration du type : type Tvecteur = tableau ( intervalle dentiers) de entiers type Tvecteur is array (integer.
4. Les structures de tests
Algorithmique -les fichiers-
Section VI Structures répétitives (suite)
Chapitre IV. Structures linéaires (piles, files, listes chaînées)
Les bases de l’Algorithmique
Semaine #1 INF155 par Frédérick Henri.
Cours algorithme 2 S. Tabbone.
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Dérécursivation Dérécursiver, c’est transformer un algorithme récursif en un algorithme équivalent ne contenant pas d’appels récursifs. Récursivité terminale.
Les éléments de base de l’algorithmique
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
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.
Semaine #1 INF130 par Frédérick Henri.
Semaine #1 INF135 par Frédérick Henri.
Séance d’introduction
1 Le fichier séquentiel Suite finie déléments dun même type Exemples : – fichier des livres dune bibliothèque – enregistrements sur un magnétophone – ensemble.
Structures de données avancées : Arbres AVL & Arbres Rouge et Noir
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Programmation procédurale Les différents schémas
Structures complexes Pr ZEGOUR DJAMEL EDDINE
Expressions logiques Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Déclaration des données constantes Déclaration des données variables
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)
Algorithmique et programmation en
Un survol du language C.
Sémantique des expressions arithmétiques pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Les tests.
 Syntaxe du langage PHP
Le langage Z minimal Pr ZEGOUR DJAMEL EDDINE
La programmation.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
L’analyse lexicale Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : Arbres AA
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)
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)
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 5 : Structures de contrôle représentées en assembleur
Module algorithmique et programmation
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)
Soit n un nombre entier supérieur ou égal à 1.
Algorithmique Tableaux de données
Objets et Actions Élémentaires.
Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Un projet pour approfondir l’apprentissage de la programmation en L1: atelier Prog&Play E. Delozanne, P. Jarraud, M. Muratet 1.
Introduction à L’Algorithmique
Algorithmique Boucles et Itérations
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
PhP 2. Tableaux et structures de contrôle. Les tableaux Définition –Rassemblement d’un ensemble de valeurs portant le même nom de variable –Types de tableaux.
Transcription de la présentation:

Structures de contrôle Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)

Structures de contrôle : Objectif Il s’agit de traduire les structures TANTQUE, POUR et SI-SINON en opération de bas niveau avec uniquement les branchements conditionnels et inconditionnels

Sémantique des structures de contrôle : Quadruplés Quadruplé relatif au branchement conditionnel ‘si exp aller à Et1 sinon aller à Et2 fsi’ B : pointeur dans TABOB vers le résultat de exp C : Et1 (pointeur dans table des quadruplés: TABQUAD) D : Et2 (pointeur dans TABQUAD) Quadruplé relatif au branchement inconditionnel ‘Aller à Et1’ B : Et1 (pointeur dans TABQUAD) C et D non utilisé (‘Br’, B, C, D ) (‘B’, B, C, D )

Structures de contrôle : Déclarations Sep dans {:, Un, Une, Des} Cste désigne une constante numérique entière Chaîne : chaîne de caractères Idf désigne un identificateur Opr dans {, >=, =, <> }; Opa dans { +, -, Ou } Opm dans { *, /, Et }; Sign dans {+, -}

Structures de contrôle : Déclarations  [ ~Soit|Soient~ ] Debut Fin [;]  ;{ [~Soit|Soient~] ;}*  [Sep ]  Idf {, Idf}*  Entier | Booleen | Chaine | Car

Structures de contrôle : Instructions  { ; }*  Idf := | Lire ( Idf {, Idf }* ) | Ecrire ( {, }* ) | Tantque [ : ] Fintantque | Si [:] [Sinon ] Fsi | Pour Idf:=, [, ][:] Finpour

Structures de contrôle : Expressions  [ Opr ]  [Sign] { Opa }*  {Opm }*  Idf | Cste | ( ) | Non | Vrai | Faux | Chaine

Sémantique de la boucle ‘Tantque’ : Fonctions sémantiques  Tantque [ : ] Fintantque F1F2 F3 Soit Ptquad le pointeur du dernier quadruplé généré. Sauvegarder Ptquad+1 dans Sauv. F1 Soit Temp le résultat de (emplacement dans TABOB). Si son type n’est pas booléen : Erreur. Générer le quadruplet (‘B’, Temp, Ptquad+2, X ). Sauvegarder son pointeur dans Sauv2 F2 Générer le quadruplet (‘Br’, Sauv,, ). Remplacer X par Ptquad + 1 dans le quadruplé Sauv2 F3

Sémantique de la boucle ‘Tantque’ : Exemple Soit i,s, n des entiers; debut lire(n); i :=1; s := 0; tq i <= n s := s+i;i := i +1; ftq; ecrire(s) fin ‘0’ ‘1’ TABCONS 0 1 En fin de compilation, programme source = table des quadruplés + TABOB + TABCONS + LONGZDD ‘L’‘E’0 ‘L’‘E’1 ‘L’‘E’2 ‘C’‘E’0 ‘C’‘E’1 ‘X’‘B’3 ‘X’‘E’4 ‘X’‘E’ TABOB 6 LONGZDD 3 4 (Quadruplés pour le ‘Tantque’) … ‘<=’035 ‘B’5813 ‘+E’106 ‘:=‘16 ‘+E’047 ‘:=‘07 ‘Br’6 … TABQUAD 8

Sémantique de la boucle ‘Pour’ : Fonctions sémantiques  Pour Idf:=, [, ][:] Finpour F1F2F3 Si Idf n’est pas déclaré : Erreur. Si le type de Idf n’est entier : Erreur. Soit Ptidf son pointeur dans TABOB F1 Soit Temp le résultat de (emplacement dans TABOB). Si son type n’est pas entier : Erreur. Générer le quadruplet (‘:=’, Ptidf, 0, Temp ). F2 Soit Temp2 le résultat de (emplacement dans TABOB). Si son type n’est pas entier : Erreur F3 F4 F6 F5

Sémantique de la boucle Pour : Fonctions sémantiques  Pour Idf:=, [, ][:] Finpour F1F2F3 Soit Temp3 le résultat de (emplacement dans TABOB). Si son type n’est pas entier : Erreur. F4 F6 F5

Sémantique de la boucle Pour : Fonctions sémantiques  Pour Idf:=, [, ][:] Finpour F1F2F3 Cas où le pas existe : créer constante ‘0’; soit Ptcons son pointeur dans TABOB. Générer un temporaire booléen; soit Tb son pointeur dans TABOB. Générer le quadruplé (‘ =‘, Ptidf1, temp2,, Tb). Génerer le quadruplé (Br, Ptquad+3,,). Générer le quadruplé (‘<=‘, Ptidf1, temp2,, Tb). Générer le quadruplé(‘B’,Tb, Ptquad + 2, X). Sauvegarder son pointeur dans Sauv2. F5 F4 F6 F5

Sémantique de la boucle Pour : Fonctions sémantiques  Pour Idf:=, [, ][:] Finpour F1F2F3 F4 F6 F5 Cas où le pas existe : Générer le quadruplé (‘+E‘, ptidf1, temp3, Ptidf). Générer le quadruplé(‘Br’, Sauv,,). Remplacer X par Ptquad + 1 dans le quadruplé Sauv2. F6

Sémantique de la boucle Pour : Exemple Soit i, s des entiers; debut s := 0; pour i := 1, 12, 3 s := s + i fpour; ecrire(s); fin ‘0’ ‘1’ ’12’ ‘3’ TABCONS 0 1 En fin de compilation, programme source = table des quadruplés + TABOB + TABCONS + LONGZDD ‘L’‘E’0 ‘L’‘E’1 ‘C’‘E’0 ‘C’‘E’1 ‘C’‘E’2 ‘C’‘E’3 ‘X’‘B’2 ‘X’‘B’3 ‘X’‘E’ TABOB 5 LONGZDD 3 4 Quadruplés pour le ‘Pour’ … ‘:=’03 ‘<’526 ‘B’668 ‘>=‘047 ‘Br’8 ‘<=‘047 ‘B’71014 ‘+E’108 ‘:=‘18 ‘+E’050 ‘Br’3 …

Sémantique de la conditionnelle ‘Si-Sinon’ : Fonctions sémantiques  Si [:] [Sinon ] Fsi F1 F2F3 Soit Temp le résultat de (emplacement dans TABOB). Si son type n’est pas booléen : Erreur.Générer le quadruplé (‘B’, Temp, Ptquad+2, X). Sauvegarder son pointeur dans Sauv F1 Générer le quadruplé (‘Br’, Y,,). Sauvegarder son pointeur dans Sauv2. Remplacer X par Ptquad + 1 dans le quadruplé Sauv. F2 Cas ou la partie ‘sinon’ existe : Remplacer Y par Ptquad + 1 dans le quadruplé Sauv2. Cas ou la partie ‘sinon’ n’existe pas : Remplacer X par Ptquad + 1 dans le quadruplé Sauv. F3

Sémantique de la conditionnelle ‘Si-Alors- Sinon’ : Exemple Soit a un entier; debut lire(a); si a = 0 : ecrire('nul') sinon si a >0 ecrire('positif') sinon ecrire('négatif') fsi fin ‘0’ ‘nul’ ’positif’ ‘négatif’ TABCONS 0 1 En fin de compilation, programme source = table des quadruplés + TABOB + TABCONS + LONGZDD ‘L’‘E’0 ‘C’‘E’0 ‘X’‘B’1 ‘C’‘S’1 ‘X’‘B’2 ‘C’‘S’2 ‘C’ TABOB 3 LONGZDD 3 4 Quadruplés pour le ‘Si’ … ‘=’012 ‘B’246 ‘Ecr’11 ‘Br‘11 ‘>’014 ‘B‘4810 ‘Ecr’21 ‘Br’11 ‘Ecr‘31 … TABCOMP