Modèle CDFG une proposition pour débattre...

Slides:



Advertisements
Présentations similaires
Algorithmes et structures de données (avancées) Cours 1+2
Advertisements

17 B. Goossens D. Defour17 B. Goossens D. Defour Prédiction des retours Le prédicteur adresse une pile (mémoire à 2 ports)
Tests et Validation du logiciel
Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL.
Formation universitaire à .NET: Introduction à C#
Initiation à la programmation et algorithmique cours 2
Algorithmes et structures de données avancées Cours 4
Algorithmes et structures de données avancées Cours 6 Patrick Reuter
Algorithmes et structures de données 3ème cours Patrick Reuter
Algorithmes et structures de données
Algorithmes et structures de données Cours 3
Algorithmes et structures de données Cours 9 Patrick Reuter
Calculs de complexité d'algorithmes
Manipulation d’XML avec XSL
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Semaine #1 INF155 par Frédérick Henri.
CPI/BTS 2 Programmation Web Introduction au PHP
Python La structure alternative
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
8PRO100 Éléments de programmation Comment faire prendre une décision à un ordinateur?
Structures de contrôle de l’exécution
Les structures de contrôle conditionnelles
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Théorie des graphes Un peu de vocabulaire.
© 2007 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 Sémantique Formelle Peter Van Roy Département dIngénierie Informatique, UCL
Le langage ASP Les formulaires avec Request. Les formulaires sont employés pour transmettre des informations saisies par un client à une application Web.
GPA750 Les ateliers multigammes Chapitre 5
Semaine #1 INF130 par Frédérick Henri.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
8PRO107 Éléments de programmation
Partie II Sémantique.
CSI 1502 Principes fondamentaux de conception de logiciels
Instructions de contrôle
ECP – Option SA Henri Fallon
GPA750 – Gestion de Projets
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
Structures alternative et répétitive
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
Algorithmique Les structures Rappel L'enchaînement séquentiel
Mesure de la structure du système GEF492A 2014 Référence: [HvV §12.1.5] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie.
Créer des packages.
Un survol du language C.
Un outil d’estimation du temps d’exécution au pire-cas par analyse statique de programmes IRISA - Projet Solidor Antoine COLIN.
MIGO ET COMPLEXITE1 ARBRES EQUILIBRES Définition : On dit qu’un arbre binaire est H équilibré si en tout nœud de l’arbre, les hauteurs des sous-arbres.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Ranking the web frontier Nadav Eiron, Kevin S. McCurley, John A. Tomlin IBM Almaden Research Center Bah Thierno Madiou.
Ceci est un graphe valué Des arcs : 1-2, 1-4, 7-10,…..
Master 1 SIGLIS Java Lecteur Stéphane Tallard Correction du TD Chapitre 4.
PROJET CAPS Compilation, Architecture, Parallélisme et Système.
Cours n° 3 Traitements en Java
Disponibilité de production Dassault
UMR 7619 Sisyphe Avril 2012 Alexandre Pryet Le langage une introduction pragmatique Cacul itératif.
Évaluation et application des fonctions Let f = function x -> ( function y -> x+y );; Type :int -> (int ->int) int -> int ->int f int.
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Les structures de contrôle
Licence d’Informatique Algorithmique des graphes
1 UMLV  FICHIERS Mémoire de masse découpée en blocs Fichier :liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers)‏ Bloc d’éléments Bloc.
1 Cours 6 Définitions de nouvelles procédures Transmissions de données/résultats Déclarations globales/locales Visibilités Interface/implementation.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Directives Ocaml Définition
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
Java Réalisé par: Mouna POKORA. PLAN: Définition : Historique: Caractéristiques: un langage orienté objet: un langage interprété : un langage portable:
Cycle, Cocycle, Arbre et Arborescence
Matlab (Matrix Laboratory) Langage de programmation évolué. Traitement direct d’opérations matricielles, dont l’inversion et l’analyse d’opérateurs ou.
Exercice : Soient les fonctions définies sur N ( ensemble des entiers naturels donc positifs ) par : f(x) = - 2x + 6 ; g(x) = x + 1 ; k(x) = la plus grande.
Quiz C++ Les variables & les boucles.
Exercice : Soient les fonctions définies sur N ( ensemble des entiers naturels donc positifs ) par : f(x) = - 2x + 6 ; g(x) = x + 1 ; k(x) = la plus.
Nombres premiers : ce sont des nombres entiers positifs, qui ne sont divisibles que par 1 et eux- mêmes. Exemples : 24 est divisible par 2, par 3, par.
Transcription de la présentation:

Modèle CDFG une proposition pour débattre... Philippe Coussy, Dominique Heller

Plan Bloc de base Branchement conditionnel Boucle Fonction Dépendances de données inter BB

CDFG Un CDFG est un graphe orienté hiérarchique G(V,E) avec V l ’ensemble des nœuds et E l ’ensemble des arcs. Les arcs représentent le flow de contrôle entre les nœuds. Les nœuds aussi nommés blocs sont de deux types: basiques notés BB ou hiérarchiques notés BH.

Suite linéaire d’instructions Bloc de base BB Suite linéaire d’instructions un BB ne contient pas de boucle un BB ne contient pas de branchement conditionnel hormis la première instruction, il n’y a pas d’instruction dans un BB qui est la cible d’un branchement pas de point d ’entrée intermédiaire dans un BB pas de point de sortie intermédiaire dans un BB un GOTO hors d ’un if serait donc la dernière instruction d ’un BB ??? Instruction possible appel de fonction affectation Un BB peut être représenté par un DFG

Branchement conditionnel Utilisation d’un modèle unique pour représenter les branchements conditionnels un branchement conditionnel est un bloc hiérarchique contenant Un nœud fork, un nœud join, un ensemble de blocs hiérarchiques, un ensemble d’arcs il est annoté avec le type de branchement conditionnel qu’il représente if(2) pour un if-then-else if(3) pour un if à trois branche switch(4) pour un switch-case à 4 cas

Branchement conditionnel Noeuds Fork (BB) contient le calcul des prédicats Join (BB) non fusionné avec le BB suivant contiendra les « PHY nodes » si la forme SSA est utilisée Ensemble de blocs hiérarchiques successeurs du nœud fork et prédécesseur du nœud join Arcs Les arcs de contrôle entre le nœud fork et l’ensemble des blocs hiérarchiques sont annotés avec les prédicats évalués dans le nœud fork

Branchement conditionnel : représentation Tag if(2) Tag switch(N) x = c*2; ‘ y= (x==0); ‘ z= (x== 1); ... ‘ x = c*2; ‘ y = a<b; ‘ z = !y; P(y) P(z) P(y) P(z) P(...) ... ... ... ... ... ... join join If-then-else Switch-case

Branchement conditionnel : représentation Tag if(3) ‘ x = (a<b); ‘ y = (a>b); ‘ z = (a==b); P(x) P(y) P(z) ... ... ... join If « à 3 branches »

Branchement conditionnel: switch avec un break manquant Tag switch(N) x = c*2; ‘ y= (x==0); ‘ z= (x== 1); ... P(y) P(z) P(...) ... ... ... ... join

Représentation unique Boucle Représentation unique Init test de condition d ’arrêt Corps de boucle Next test de condition d ’arrêt Bloc suivant

Boucle avec continue Init OK ssi le code est de la forme suivante test de condition d ’arrêt OK ssi le code est de la forme suivante BB1 IF(2) If (cond) continue; else BB2; FORK BB2 Cont Join Next test de condition d ’arrêt Bloc suivant

Boucle avec continue Init NOK si le code à un else implicite. Il faudra une transformation lors de la création du graphe pour utiliser le modèle du slide précédent test de condition d ’arrêt BB1 IF(2) FORK vide Cont If (cond) continue; BB2; Join BB2 Next test de condition d ’arrêt Bloc suivant

Boucle avec continue Init NOK si le code à un else implicite. Il faudra une transformation lors de la création du graphe pour utiliser le modèle du slide précédent test de condition d ’arrêt BB1 IF(2) FORK BB2 Cont If (cond) continue; else BB2; BB3; Join BB3 Next test de condition d ’arrêt Bloc suivant

Boucle avec Break Init test de condition d ’arrêt BB1 FORK BB2 Break Next test de condition d ’arrêt Bloc suivant

Fonction Mise en ligne Non mise en ligne duplication de chaque appel un CDFG par appel de fonction (i.e. des nœuds hiérarchiques) Non mise en ligne c’est une opération atomique et le BB n ’est pas scindé

Dépendances de données Expression des dépendances de données entre BB pour les live in et live out par exemple A REGARDER POUR LA PROCHAINE REUNION dépendances producteur consommateur nécessaires Par défaut utilisation de la forme SSA ou non SSA ? Si un BB utilise une fonction dont on ne connais pas le code => ignorer ce BB ou ajouter dans live in et live out les variables globales