Facilités de typage pour lingénierie des langages Dr. Frédéric MALLETRapporteurUniversité de Nice Sophia Antipolis Pr. Pierre-Etienne MOREAURapporteurEcole.

Slides:



Advertisements
Présentations similaires
LES NOMBRES PREMIERS ET COMPOSÉS
Advertisements

[number 1-100].
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
DECOUVERTE ET MISE EN OEUVRE
Approche graphique du nombre dérivé
Fabrice Lauri, François Charpillet, Daniel Szer
Licence pro MPCQ : Cours
Distance inter-locuteur
Les numéros
1 1 Momentum. 2 2 Tout objet en mouvement continuera son mouvement tant que rien nentrave sa progression.
Est Ouest Sud 11 1 Nord 1 Laval Du Breuil, Adstock, Québec I-17-17ACBLScore S0417 Allez à 1 Est Allez à 4 Sud Allez à 3 Est Allez à 2 Ouest RndNE
Sud Ouest Est Nord Individuel 36 joueurs
Les identités remarquables
JXDVDTEK – Une DVDthèque en Java et XML
Approche par composant : Un cadre pour l’ingénierie de la commande
PILOTE - Sous Projet PILOTE SOUS-PROJET 5 Cyril Carrez, Elie Najm, Alexandre Tauveron.
Génération interactive dimages projectives : Application à la Radiothérapie Pierre BLUNIER Du 01/12/2002 au 28/03/2003 Centre Léon Bérard.
Calcul mental 3ème 2 Septembre 2010
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
09/03/2014 EF Installations de suivi environnemental Draft data specification Version 2.0 TWG EF Facilitators: Franz Daffner, Sylvain Grellet.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Analyse de la variance à deux facteurs (données déséquilibrées) Michel Tenenhaus.
Minimisation Techniques 1 Assimilation Algorithms: Minimisation Techniques Yannick Trémolet ECMWF Data Assimilation Training Course March 2006.
2 1. Vos droits en tant quusagers 3 1. Vos droits en tant quusagers (suite) 4.
LOGO Profile Enterprise Java Beans Réaliser par: HAMROUNI Aymen HOUIJI Manel WESLATI Yassine.
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES COHESION CULTURELLE ET EXPANSION DES IDEES SUR LE TERRITOIRE EUROPEEN.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
SERABEC Simulation sauvetage aérien avec un Hercule C130. Départ de St-Honoré le 4 octobre Durée de vol 3 heures. Premier vol en Hercule pour les.
-17 Anticipations économiques en Europe Septembre 2013 Indicateur > +20 Indicateur 0 a +20 Indicateur 0 a -20 Indicateur < -20 Union européenne total:
Un système de médiation basé sur les ontologies
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
Simulation 3D d’un dispositif de fourchette électronique
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
CALENDRIER PLAYBOY 2020 Cliquez pour avancer.
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
Titre : Implémentation des éléments finis sous Matlab
1 Conduite du changement LA CONDUITE DU CHANGEMENT.
Classes abstraites et Interfaces
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
LES NOMBRES PREMIERS ET COMPOSÉS
Unit 4: Les animaux Unit 4: Les animaux.
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1.
Tournoi de Flyball Bouin-Plumoison 2008 Tournoi de Flyball
Faculté I&C, Claude Petitpierre, André Maurer 1 Concepts dhéritage Héritage dimplémentation hasA Héritage de spécialisation isA.
+21 Anticipations économiques en Europe Decembre 2013 Indicateur > +20 Indicateur 0 á +20 Indicateur 0 á -20 Indicateur < -20 Union européenne total: +14.
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
1 Modèle pédagogique d’un système d’apprentissage (SA)
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
10 paires -. 9 séries de 3 étuis ( n° 1 à 27 ) 9 positions à jouer 5 tables Réalisé par M..Chardon.
Objectifs À la fin de ce cours, vous serez capables de :
Modélisation des données Niveau conceptuel DON-2 V0-0.
CALENDRIER-PLAYBOY 2020.
1. Présentation générale du système
USAM BRIDGE H O W E L L -CLASSIQUE
9 paires séries de 3 étuis ( n° 1 à 27 )
Projet de stage d’année IIR4 sous le thème:
Les Chiffres Prêts?
Elles avaient envahi le jardin, mais derrière... 1.
1 Formation à l’usage éco-performant de votre pc 1 ère Partie.
Les parties du corps By Haru Mehra Le Frehindi 1Haru Mehra, DELF, DALF,CFP.
(UML) Unified Modeling Language
Transcription de la présentation:

Facilités de typage pour lingénierie des langages Dr. Frédéric MALLETRapporteurUniversité de Nice Sophia Antipolis Pr. Pierre-Etienne MOREAURapporteurEcole des Mines de Nancy Dr. Laure GONNORDExaminateurUniversité Claude Bernard Lyon 1 Dr. Marc PANTELExaminateurInstitut National Polytechnique de Toulouse Pr. Olivier RIDOUXExaminateurUniversité de Rennes 1 Pr. Jean-Marc JEZEQUELDirecteurUniversité de Rennes 1 Dr Benoit COMBEMALECo-encadrantUniversité de Rennes 1, Inria Pr. Steven DERRIENCo-encadrantUniversité de Rennes 1 Clément Guy 10 décembre 2013

Systèmes logiciels complexes Préoccupations diverses Nombre & complexité 2 Système logiciel

Ingénierie dirigée par les modèles Séparation des préoccupations 1 préoccupation = 1 modèle Modèle = Représentation d'un aspect du système dans un but donné Capitalisation Langages de modélisation dédiés (DSMLs) 3

Langage de modélisation dédié (DSML) Langage de modélisation Modèle = "Phrase" du langage Langage dédié Spécifique à 1 préoccupation/domaine Concepts et outillage spécifique 4

Coûts de définition et doutillage des DSMLs Besoin doutils Public restreint Définition et outillage à partir de 0 Besoin doutils et de méthodes pour les coûts 5

Compilateurs model-based 6 Extraction de CFG, passage en forme SSA, élimination de code mort… Orcc Open RVC-CAL Compiler Extraction de CFG, passage en forme SSA, élimination de code mort… C C VHDL RVC-CAL LLVM

Problématique Fournir des facilités pour la définition et loutillage des langages de modélisation dédiés 7

Plan Etat de lart & Limites Métamodélisation Facilités dingénierie Typage de modèles Facilités de typage Implémentation & Validation Conclusion & Perspectives 8 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & Perspectives

Métamodélisation Définition et outillage dun DSML Métamodèle = AS : Syntaxe abstraite Concepts du langage/de la préoccupation CS : Syntaxe concrète Représentation utilisateur Sem : Sémantique Sens des modèles 9 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesMétamodélisation

Exemple : Graphes de flot de contrôle (CFG) Représentation intermédiaire 10 var x, y x := read() y := read() y > 1 x := x * x y := y - 1 print(y) Bloc de base Instruction Saut Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesMétamodélisation Instruction

Syntaxe abstraite (AS) Graphe de classes Modèle = Ensemble dobjets 11 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesMétamodélisation

Syntaxe concrète (CS) et Sémantique (Sem) Transformations de modèles Fonctions de modèles Exemples : Visualisation Analyse datteignabilité Frontière de dominance Détection de boucles … 12 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesMétamodélisation

Relation de conformité Entre modèle et AS Sappuie sur linstanciation 13 > Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesMétamodélisation

Limites de la conformité Instanciation : 1 objet 1 classe Conformité : 1 modèle 1 DSML polymorphisme de modèle réutilisation d'outils entreDSMLs 14 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesMétamodélisation

Exemple 15 Visualisation, détection de boucles… > Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesMétamodélisation …

Plan Etat de lart & Limites Métamodélisation Facilités dingénierie Typage de modèles Facilités de typage Implémentation & Validation Conclusion & Perspectives 16 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & Perspectives

Modélisation in-the-large [1] Modèles et leurs relations : entités de 1 ère classe Mégamodèles = Modèles + Relations [2,3…] 17 [1] Bézivin et al., ECMFA 03 ; [2] Barbero et al., ECMFA 07 ; [3] Favre, Dagsthul 04 ; Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesFacilités dingénierie

Réutilisation de transformations de modèles Transformations génériques [4,5…] Structures AS Concepts, templates, motifs variables Transformations composites [6,7…] Basées sur lAS + autres informations Contraintes, opérations CRUD 18 [4] Varrò et Pataricza, UML 04 ; [5] De Lara et Guerra., MoDELS 10 ; [6] Oldevik, DAIS 05 ; [7] Kleppe, ECMFA 06 ; Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesFacilités dingénierie

Limites des approches existantes 19 Syntaxe abstraite Autres informations Concept > Mégamodèle > Template > Motif variable > Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesFacilités dingénierie

Plan Etat de lart & Limites Métamodélisation Facilités dingénierie Typage de modèles Facilités de typage Implémentation & Validation Conclusion & Perspectives 20 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & Perspectives

Facilités fournies par les systèmes de types objets Abstraction Entités de 1 ère classe Séparation interface/implémentation Réutilisation Polymorphisme & Héritage Analyses statiques Détection d'erreurs, auto-complétion Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesTypage de modèles

22 Animal a = Animal.new Nourriture n = Nourriture.new a.mange = n Limites du sous-typage objet Animal a = Vache.new Nourriture n = Nourriture.new a.mange = n Animal a = Vache.new Nourriture n = Herbe.new a.mange = n Animal a = Vache.new Nourriture n = Hamburger.new a.mange = n Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesTypage de modèles

23 Polymorphisme de groupes de types [8] avec le sous-typage objet Animal a = Animal.new Nourriture n = Nourriture.new a.mange = n avec la correspondance (<#) [9] [8] Ernst, ECOOP 01 ; [9] Bruce et al., TOPLAS 03 ; <# Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesTypage de modèles

Typage de modèles [10] Type de modèles = Graphe de classes Réutilisation = Sous-typage + Génériques Paramètre de type de modèles Types chemin-dépendants 24 class ReachabilityAnalyzer[MT <: CFG] { operation analysis() Set[MT::Node] is do … end } modeltype CFG { ControlFlowGraph, Node, } [10] Steel et Jézéquel, SoSyM 07 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesTypage de modèles

Limites du typage de modèles 25 Métamodèle Classe Modèle conforme Modèle typé ??? > Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesTypage de modèles Type de modèle

Limites Conformité polymorphisme Facilités existantes combinaison/comparaison Typage de modèles séparation interface-implémentation séparation small-large 26 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & Perspectives

Plan Etat de lart & Limites Facilités de typage Relations dinstanciation & de typage Relations de sous-typage Implémentation & Validation Conclusion & Perspectives 27 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & Perspectives

Objectif Amener les facilités de typage objet Abstraction Réutilisation Analyses statiques … Aux modèles et aux DSMLs Conformité Instanciation & Typage 28 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & Perspectives

Interface et implémentation Interface Champs, signatures dopérations Types objets & Types de modèles Implémentation Constructeurs, opérations Classes & Métamodèles 29 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & Perspectives

Modélisation in-the-small et modélisation in-the-large Modélisation in-the-small Objets Types objets & Classes Champs & Opérations Modélisation in-the-large Modèles Types de modèles & Métamodèles Champs & Opérations de modèles 30 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & Perspectives

METAL : métalangage pour la modélisation in-the-large 31 Type de modèles Métamodèle Type objet Classe > Modèle > Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & Perspectives Objet >

Plan Etat de lart & Limites Facilités de typage Relations dinstanciation & de typage Relations de sous-typage Implémentation & Validation Conclusion & Perspectives 32 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & Perspectives

Objets, types objets et classes Type objet : Interface Champs, signatures dopérations Classe : Implémentation Opérations, constructeurs 33 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesTypage & Instanciation

Métamodèles Implémentation des modèles Classes Opérations de modèles Constructeurs 34 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesTypage & Instanciation

Relation dinstanciation 1 modèle 1 métamodèle Réserver lespace mémoire Champs de modèles Table des opérations de modèles 35 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesTypage & Instanciation

Types de modèles Interfaces des modèles Types objets Champs de modèles Signatures dopérations de modèles 36 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesTypage & Instanciation

Type exact dun modèle m Type le plus précis de m Tous les types objets Tous les champs de modèles Toutes les signatures dopérations de modèles Extrait du métamodèle de m 37 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesTypage & Instanciation

Relation de typage Ensemble des types dun modèle = Type exact + Super-types(Type exact) 38 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesTypage & Instanciation

Plan Etat de lart & Limites Facilités de typage Relations dinstanciation & de typage Relations de sous-typage Implémentation & Validation Conclusion & Perspectives 39 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & Perspectives

Sous-typage entre types de modèles Substitution sûre de modèles Relation de correspondance (<#) entre types objets entre signatures dopérations entre champs 2 critères Hétérogénéités structurelles Contexte dutilisation 40 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesRelations de sous-typage

Correspondance de types objets 41 T <# T ssi : T.name = T.name op T.ownedSignature op T.ownedSignature tel que op <# op c T.ownedProperty c T.ownedProperty tel que c <# c Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesRelations de sous-typage METAL (M3)

Correspondance de signatures dopérations 42 op <# op ssi : op.name = op.name op.type <# op.type p op.ownedParameter p T.ownedParameter tel que : p.type <# p.type p.lower = p.lower p.upper = p.upper p.isUnique = p.isUnique p.isOrdered Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesRelations de sous-typage METAL (M3)

Correspondance de champs 43 c <# c ssi : c.name = c.name c.type <# c.type c.lower = c.lower c.upper = c.upper c.isComposite = c.isComposite c.isUnique = c.isUnique c.isReadOnly c.isOrdered c.opposite void c.opposite void c.opposite.name =c.opposite.name Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesRelations de sous-typage METAL (M3)

Hétérogénéités structurelles Isomorphique Information = Structure = Isomorphisme de sous-graphe Correspondances Non-isomorphique Information = Structure Adaptation de modèles MT2 MT1 44 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesRelations de sous-typage

Contexte dutilisation Totale Substitution partout Partielle Substitution dansun contexte pour une transformation donné(e) Extraction de type effectif MT2 MT1 MT2 45 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesRelations de sous-typage

4 Relations de sous-typage Totale isomorphique Correspondance Partielle isomorphique + Extraction Totale non-isomorphique + Adaptation Partielle non-isomorphique + Extraction + Adaptation B1 <# B2A1 <# A2 > A1 <# A2 > B1 <# B2 f(A1) > 46 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesRelations de sous-typage

Plan Etat de lart & Limites Facilités de typage Implémentation & Validation Implémentation Validation Conclusion & Perspectives 47 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & Perspectives

Implémentation dun système de types Dans lenvironnement Kermeta Sous-typage total isomorphique Appliqué au passage en forme Static Single Assignment 48 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & Perspectives

Plan Etat de lart & Limites Facilités de typage Implémentation & Validation Implémentation Validation Conclusion & Perspectives 49 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & Perspectives

Compilateur Kermeta 50 Kermeta Model IR KMT Aspect Node KMT Aspect ControlFlowGraph Vérificateur de types interface ControlFlowGraph { [...] } interface Node { [...] } class ControlFlowGraphImpl { [...] } class NodeImpl { [...] } class Factory { [...] } Moteur dexécution trait ControlFlowGraphAspect { [...] } trait NodeAspect { [...] } class RichControlFlowGraph { [...] } class RichNode { [...] } class Factory { [...] } trait ControlFlowGraphAspect { [...] } trait NodeAspect { [...] } trait IControlFlowGraph { [...] } trait INode { [...] } class RichControlFlowGraph { [...] } class RichNode { [...] } class Factory { [...] } trait MT_CFG_Simple { [...] } trait MM_CFG_Simple { [...] } class RichDSML_CFG_Simple { [...] } trait IFactory_CFG_Simple { [...] } object RichFactory_CFG_Simple { [...] } Ecore JVM Kermeta KMT Aspect Node KMT Aspect ControlFlowGraph KMT Metamodel Java Scala Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesImplémentation

Front-end Kermeta CS Kermeta Vérificateur de types Sous-typage total isomorphique Relation de correspondance 51 metamodel CFG_Dominance { subtypeof CFG_Simple operation computeDominanceFrontier(m : MT) is do […] var s : Set[^Node] init Set[^Node].new […] end } Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesImplémentation var m : CFG_Dominance init CFG_Dominance.new m.computeDominanceFrontier()

Back-end Kermeta 52 Métamodèle Type objet Classe Type de modèles class NodeAspect { […] } trait INode { type ControlFlowGraph <: IControlFlowGraph type Node <: INode […] def getNext() : Set[Node] } class NodeAspect extends INode { type ControlFlowGraph = ControlFlowGraphAspect type Node = NodeAspect […] } trait MT_CFG_Dominance extends MT_CFG_Simple { type ControlFlowGraph <: IControlFlowGraph type Node <: INode […] def computeDominanceFrontier(m : MT) } class MM_CFG_Dominance extends MT_CFG_Dominance { type ControlFlowGraph = ControlFlowGraphAspect type Node = NodeAspect […] def computeDominanceFrontier(m : MT) { […] var s : Set[Node] = new Set[Node] […] } Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesImplémentation

Plan Etat de lart & Limites Facilités de typage Implémentation & Validation Implémentation Validation Conclusion & Perspectives 53 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & Perspectives

Passage en forme Static Single Assignment Passe de compilation courante 1 variable 1 définition Usage Définition Insertion de Ф -fonctions 54 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesValidation x := 0 if (cond) then x := x + 1 end y := x + 1 x 1 := 0 if (cond) then x 2 := x end x 3 := Ф (x 1, x 2 ) y 1 := x 3 + 1

Implémentation Kermeta Frontière de dominance Insertion de Ф - fonctions Renommage de variables 55 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesValidation

Adaptation pour GeCoS 56 Etat de lart – Facilités de Typage – Implém. & Validation – Conclusion & PerspectivesValidation Symbol Scope ControlFlowGraphProcedureInstruction _add is do if not scope.isVoid then scope.symbols.add(_element) end _remove is do if not scope.isVoid then scope.symbols.remove(_element) end } aspect class Procedure { property symbols : Set[Symbol] _get is do result := Set[Symbol].new if not scope.isVoid then result.addAll(scope.symbols) end

Plan Etat de lart & Limites Facilités de typage Implémentation & Validation Conclusion & Perspectives Conclusion Perspectives 57 Etat de lart & Limites – Facilités de typage – Conclusion & Perspectives

Conformité Typage & Instanciation Facilités de définition et doutillage des DSML Types de modèles & Métamodèles Abstraction Détection derreurs Sous-typage & Héritage Réutilisation 58 Etat de lart & Limites – Facilités de typage – Conclusion & PerspectivesConclusion

Une famille de systèmes de types 59 4 Relations de sous-typage 2 Critères Déclaration & Vérification Mécanisme dhéritage Système de types Etat de lart & Limites – Facilités de typage – Conclusion & PerspectivesConclusion

Plan Etat de lart & Limites Facilités de typage Implémentation & Validation Conclusion & Perspectives Conclusion Perspectives 60 Etat de lart & Limites – Facilités de typage – Conclusion & Perspectives

Etendre le typage de modèles 61 Etat de lart & Limites – Facilités de typage – Conclusion & PerspectivesConclusion 4 Relations de sous-typage 2 CritèresDéclaration & Vérification Mécanisme dhéritage Système de types Fonctions de modèles Adaptations Types de modèles Structure ContraintesComportement Structure Types de modèles ContraintesComportement Fonctions de modèles Adaptations InférenceBidirectionnalité InférenceBidirectionnalité

Questions 62 class MM_CFG { type ControlFlowGraph = ControlFlowGraphAspect type Node = NodeAspect […] def computeDominanceFrontier[MT <: MT_CFG](m : MT) { […] var s : Set[Node] = new Set[Node] […] } trait MT_CFG_Dominance extends MT_CFG_Simple { type ControlFlowGraph <: IControlFlowGraph type Node <: INode […] def computeDominanceFrontier[MT <: MT_CFG](m : MT) } On Model Subtyping Guy, Combemale, Derrien et Jézéquel, ECMFA, 2012 Bridging the chasm between MDE and the world of compilation Jézéquel, Combemale, Derrien, Guy et Rajopadhye, SoSyM, 2012 Model-Driven Engineering and Optimizing Compilers: A Bridge Too Far? Floch, Yuki, Guy, Derrien, Combemale, Rajopadhye et France, MoDELS, 2011 Vers un rapprochement de l'IDM et de la compilation Guy, Derrien, Combemale et Jézéquel, IDM, 2011

Bibliographie [1] Modeling in the large and modeling in the small, Bézivin et al., ECMFA 03 [2] Traceability and provenance issus in global model management, Barbero et al., ECMFA 07 [3] Foundations of of Favre of Model Driven Engineering, Dagsthul 04 [4] Generic and meta-transformations for model transformation engineering, Varrò et Pataricza, UML 04 [5] Generic meta-modelling with concepts, templates and mixin layers, De Lara et Guerra, MoDELS 10 [6] Transformation composition modelling framework, Oldevik, DAIS 05 [7] MCC: a model transformation environment, Kleppe, ECMFA 06 [8] Family Polymorphism, Ernst, ECOOP 01 [9] Polytoil: A type-safe polymorphic object-oriented language, Bruce et al., TOPLAS 03 [10] On Model Typing, Steel et Jézéquel., SoSyM 07 63

Images tirées de Pablo Alonso (Hamburger) Pete Fecteau (Animals) Bryn Mackenzie (Grass) Мила Омина (Food and Drink) 64

Transformation composite 65 Elimination de code mort CFG Passage en forme SSA Propagation de constante Elimination de code mort CFG

Mégamodèle 66 AS CFG Extraction de polyèdre AS Poly Réduction de force > Poly CFG

Transformation générique 67 AS CFG Extraction de polyèdre > AS CFG > CFGPoly CFG Générique