1. Trang chủ
  2. » Giáo Dục - Đào Tạo

MODEL DRIVEN OPERATIONAL SEMANTICS

71 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 71
Dung lượng 0,94 MB

Nội dung

Institut de la Francophonie pour l’Informatique Institut de Recherche en Informatique et Système Aléatoire MODEL DRIVEN OPERATIONAL SEMANTICS Rapport de Stage PHAM Quang-Hieu Sous la direction de Jean-Marc JEZEQUEL Directeur de Recherche Projet TRISKELL Mars – Août 2008 Remerciements Je tiens remercier tout particulièrement Jean-Marc JEZEQUEL, responsable de l’équipe TRISKELL l’IRISA, de m’avoir accueilli dans ce équipe et de m’avoir aidé durant ce stage Je remercie Cyril FAUCHER, Gilles PERROUIN, Didier VOJTISEK et Vincent MAHE pour les conseils précieux qu’ils m’ont fournis pendant les mois de stage Je tiens également remercier tous les enseignants-chercheurs, doctorants et stagiaires de l’équipe TRISKELL, avec qui j’ai eu le plaisir de travailler, pour les discussions scientifiques fructueuses que j’ai pu avoir avec eux Table des matières INTRODUCTION PRESENTATION DEL’IRISA 2.1 L’IRISA 2.2 L’EQUIPE TRISKELL CONTEXTEDU STAGE 11 3.1 MODEL-DRIVEN ENGINEERING 11 3.1.1 Développement logiciel 12 3.1.2 Activité de modélisation 13 3.1.3 Transformation de modèles 15 3.2 DOMAIN-SPECIFIC LANGUAGES 17 3.2.1 Introduction 17 3.2.2 Domain-Specific Modelling Languages 18 3.3 CONCLUSION 20 L’ETAT DEL’ART 21 4.1 STRUCTURES MODULAIRES DE SEMANTIQUE OPERATIONNELLE (MODULAR SOS) 21 4.1.1 Structural Operational Semantics (SOS) 22 4.1.2 Problème de modularité dans la SOS 23 4.1.3 Modular SOS – a variant of SOS 25 4.2 LANGAGE DE META-MODELISATION KERMETA .27 4.2.1 Contexte 27 4.2.2 Processus de construction de Kermeta 27 4.2.3 Architecture de Kermeta 28 4.2.4 Utilisation du langage Kermeta 29 4.3 LE TYPAGE DES MODELES (MODEL TYPING) 30 4.3.1 Contexte 30 4.3.2 Système de types 31 4.3.3 Type de modèles 32 4.3.4 Typage de modèles 32 4.4 CONCLUSION 36 ETUDEDE CAS : MODULAR SOS DEWREN 37 5.1 INTRODUCTION LE LANGAGE WREN 37 5.2 SPECIFICATION DE SOS 39 5.2.1 Syntaxe Abstraite de Wren 39 5.2.2 SOS règles pour l’évaluation des expressions 39 5.2.3 SOS règles pour des commandes 41 5.3 SPECIFICATION DE MSOS 42 5.3.1 Définition la structure de Label 42 5.3.2 MSOS règles pour l’évaluation des expressions 43 5.3.3 MSOS règles pour les commandes 44 IMPLEMENTATION DE WREN SOUS KERMETA 45 6.1 ABSTRACT SYNTAXIQUE MODEL 45 6.2 SEMANTIQUES DYNAMIQUES 46 6.3 IMPLEMENTATION DE L’INTERPRETEUR 47 6.3.1 Charger des modèles 48 6.3.2 Exécuter les modèles 49 6.3.3 Résultat 49 6.4 EVOLUTION DU LANGAGE WREN 50 6.4.1 Ligne de produit Wren 50 6.4.2 Extensions de données 51 6.4.3 Extensions d’opération 52 6.4.4 Combinaison les extensions 55 6.5 CONCLUSION 56 CONCLUSION ET PERSPECTIVE 58 7.1 CONCLUSION 58 7.2 PERSPECTIVE 59 RÉFÉRENCES 62 Chapitre Introduction Aujourd’hui, la taille et la complexité des logicielles développés augmentent de plus en plus rapidement alors que les contraintes de temps de développement, de qualité, de maintenance et d’évolution sont toujours plus fortes, les systèmes d’information deviennent être distribués plus en plus largement Dans ce contexte, les techniques de génie logiciel sont contraintes évoluer sans cesse pour permettre de gérer la complexité et d’assurer la qualité du logiciel produit Pour faire face cette évolution rapide et croissante des applications logicielles, l’Ingénierie Dirigée par des Modèles (IDM) ou Model-Driven Engineering (MDE) ouvre de nouvelles voies d’investigation Les grandes tendances actuelles de l’IDM sont l’utilisation de langages dédiés (DomainSpecific Languages), les approches orientées aspects et les approches base de composants Un des points communs ces approches est l’utilisation de modèles pour permettre une montée en abstraction par rapport aux langages de programmation Dans ce cadre, un modèle n’est plus une simple image ou un élément de conception ou de documentation, mais bien un élément productif qui doit pouvoir être traité automatiquement L’idée de l’IDM est de les traiter comme des entités centrales dans le développement logiciel Ce nouveau processus de développement procède par des transformations de modèles pour compéter, enrichir, préciser un modèle métier initial avec les nombreux aspects plus directement liés l’environnement, la plateforme, les performances,… Ainsi les modèles simplifient la vision d’un système en permettant de représenter, de manière abstraite, un aspect du logiciel, et une transformation permet ensuite d’intégrer cet aspect dans le modèle global du logiciel en développement La combinaison de ces deux entités permet le développement simplifié de systèmes fiables, mêmes complexes D’ailleurs, la définition des langages dédiés entrne l’application des technologies de meta-modélisation générer et intégrer sémantiquement des langages riches et outils destinés des exigences de modélisation spécifique Le but est de fournir aux développeurs les abstractions raisonnables de modélisation pour que ils puissent isoler le problème de domaine spécifique partir les détails d’implémentation Actuellement, le développement des langages variétés nécessite la réutilisation et l’augmentation de la modularité dans la conception et la spécification des langages Tandis que les méta-modèles sont utilisés bien définir la syntaxe abstraite et sémantiques statiques des langages dédiés, la pratique courant de la spécification de sémantique opérationnelle n’augmente pas encore bien la modularité Pour cette étude, nous nous intéressons la technique de définition de la spécification de sémantiques opérationnelle pour augmenter la modularité Le but du stage que j’effectue dans l’équipe Triskell (IRISA/INRIA) est d’étudier la modularité dans la définition des sémantiques des langages dédiés, l’emprunt des idées de structures modulaires de sémantique opérationnelle (Modular Structural Operational Semantics) et puis de s’appuyer sur les progrès récents de Typage des Modèles (Model Typing) La démarche devrait permettre de définir des constructions individuelles de la sémantique opérationnelle comme les petits blocs qui pourraient facilement être étendu et combinés pour construire non triviales familles de langues dans le domaine des logiciels embarqués La suite de ce rapport est organisộe de la faỗon suivante Tout d’abord, le chapitre présente brièvement l’IRISA et l’équipe Triskell où je travaille durant mon stage Le chapitre rappelle le contexte dans lequel se place mon stage L’objectif de ce chapitre est d’introduire les langages dédiés, l’ingénierie des modèles et d’exprimer le rôle des modèles dans le développement des langages dédies En suite, dans le chapitre 4, je présente un travail bibliographique sur les structures modulaires de sémantique opérationnelle, les langages de métamodélisation en présentant le langage KERMETA et l’idée principale du typage des modèles Le chapitre présente le langage simple WREN comme mon étude de cas et illustre comment spécifier des structures modulaires de sémantique opérationnelle pour le WREN Et puis, dans le chapitre 6, je présente l’implémentation d’un interpréteur du WREN sous KERMETA Ce chapitre exprime comment construire des composants individuels de la sémantique opérationnelle de WREN en utilisant KERMETA pour qu’on puisse faciliter les étendre et les réutiliser pour construire une famille des langages associés au WREN En fin, le chapitre conclut ce travail et propose quelques perspectives Les documents que je les consulte durant le stage sont énumérés dans la section de référence la fin de ce rapport Chapitre Présentation de l’IRISA 2.1 L’IRISA L’Institut de Recherche en Informatique et Système Aléatoire (IRISA) est situé sur le campus Universitaire de Beaulieu Rennes Cet institut de recherche est un pôle de recherche public regroupant environ 530 personnes dont 205 chercheurs ou enseignants chercheurs, 175 chercheurs en thèse, 90 ingénieurs, techniciens, administratifs et de nombreux collaborateurs contractuels ou invités internationaux pour des séjours de plus courte durée L’INRIA, le CNRS, l’Université de Rennes et l’INSA de Rennes sont les partenaires de cette unité mixte de recherche Les travaux de recherche dans cet institut se développent au sein d’une trentaine d’équipes de recherche et autour de grands thèmes scientifiques tels que : Systèmes communicants Systèmes cognitifs Systèmes symboliques Systèmes numériques Systèmes biologiques Ces thèmes génériques se déclinent dans de nombreux domaines d’application, sources de collaborations avec d’autres acteurs tant du monde académique qu’industriel Citons les télécommunications, le multimédia et les technologies avancées pour la santé Les missions essentielles de cet institut sont d’une parte de conduire des recherches dont l’excellence scientifique est attestée par des publications et des échanges internationaux, et d’autre part d’assurer la diffusion des connaissances et du savoir-faire, en particulier auprès de ses partenaires industriels, des PME-PMI régionales, regroupées dans le club Irisatech, aux structures de recherche et développement de grands groupes industriels mondiaux La dimension européenne, par la participation des équipes de recherche aux programmes européens (actuellement FP6-IST) est fortement présente En complément, ce laboratoire s’investit dans la démarche d’incubation d’entreprises lancée tant par INRIA-Transfert sur le plan national que par l’incubateur Emergys en Bretagne L’Irisa, en relation étroite avec l’Institut de formation supérieure en informatique et communication (Ifsic), l’école doctorale Matisse de l’Université de Rennes et l’INSA de Rennes, l’antenne de Bretagne de l’ENS-Cachan, participe activement la formation par et pour la recherche J’ai effectué mon stage au sein du projet TRISKELL que je vais maintenant présenter 2.2 L’Equipe TRISKELL Le projet Triskell est une équipe de recherche au sein de l'IRISA Ce projet Triskell est dirigé par M Jean-Marc JEZEQUEL Une vingtaine de personnes (EnseignantsChercheurs, Post-Doctorants, Doctorants, Ingénieurs,…) travaillent pour ce projet Le thème de l'équipe est la construction fiable et efficace d'applications par assemblage de composants logiciels Les domaines abordés par l'équipe sont : Ingénierie des modèles Manipulation formelle de modèles UML Conception par contrat avec composants et aspects Vérification et Validation intra et intercomposants Le projet a pour objectif général la construction fiable et économiquement efficace de lignes de produits par assemblage de composants logiciels, en particulier dans le domaine des systèmes répartis et réactifs ayant des temps de réponse statistiquement contraints ("temps réel mou") Se focalisant sur l'ingénierie des modèles, Triskell a pour ambition de construire des méta-modèles, des outils et des bibliothèques de composants spécifiques pour donner un concepteur de logiciel un certain niveau de confiance dans la fiabilité d'assemblages de composants pouvant provenir de sources tierces Il s'agit notamment d'étudier des modèles permettant la spécification de propriétés la fois fonctionnelles et non-fonctionnelles de composants devant être déployés sur des systèmes répartis, et de bâtir un continuum d'outils tirant partie de ces éléments de spécification, allant de vérificateurs hors-ligne des moniteurs supervisant en ligne le comportement des composants d'une application répartie Le projet a également pour ambition de connecter de manière explicite les résultats de ses recherches aux problématiques industrielles au travers d'actions de transfert technologique, ce qui implique en particulier de prendre en compte dès le départ les standards industriels du domaine que sont UML, Corba, COM+ et Enterprise JavaBeans Triskell veut se placer la frontière de deux domaines du logiciel : d'une part le domaine de la spécification et de la preuve formelle de logiciel, et d'autre part le domaine de la conception informelle mais structurée par composants banalisés Nous pensons que l'emploi des techniques présentées plus loin permettra d'améliorer et de fiabiliser le passage entre formel et informel, et contribuera la fluidité des processus de conception, mise en oeuvre et test de logiciels Au sein de cette équipe, j’ai travaillé dans le domaine d’Ingénierie des Modèles, notamment sur la définition des structures modulaires de sémantique opérationnelle en utilisant Kermeta Ce domaine est un axe de recherche principal au sein de l’équipe, il y a plusieurs travaux en cours de réaliser autours de Kermeta 10 require kermeta require " /dynsemantics/WrenDynSemantics.kmt" require " /ext/WrenPrettyPrinter.kmt" package ASM{ aspect class Repeat { method eval(label : Label) : Integer is var cond : Integer end from cond := until cond == loop / first in comparison with WHILE result := block.eval(label) cond := condition.eval(label) end Figure 6.4.3 : Extension WrenRepeat Le résultat est montré dans la figure suivante L’interpréteur exécute un programme qui consiste la nouvelle commande Repeat Figure 6.4.4 : Résultat de WrenRepeat 6.4.3 Extensions d’opération Pour définir une nouvelle opération print() pour les concepts de Wren, je programme un nouveau fichier pour ajouter au métamodèle de la syntaxe abstraite des codes qui expliquer le comportement de l’opération print() L’objectif de l’utilisation de print() est d’afficher les éléments d’un modèle de Wren pour 52 faciliter observer l’exécution de l’interpréteur Ça, je définis un PrettyPrinter pour Wren Les sémantiques du PrettyPrinter sont définies dans le fichier WrenPrettyPrinter.kmt de manière comme on définit des sémantiques dynamiques de WrenBasic Parce que les niveaux des commandes sont différents dépend de leurs positions dans le programme Donc, une information de niveau des commandes est nécessaire pour un joli affichage De cette raison, un nouvel élément level est ajouté dans l’étiquette de Wren pour que le PrettyPrinter puisse l’utiliser pour aligner l’affichage des commandes Le nouvel élément level est défini comme suivant : /* define a new component for the Label for MSOS */ aspect class Label{ /* this new component is used only for PrettyPrinter */ attribute level : Integer /* define operations manipulating the attribute level */ / initialize the level operation initLevel() is level := end / decrease the level by operation decLevel() is level := level - end / increase the level by operation incLevel() is level := level + end / align the printing of a instruction according to its level operation alignLevel() is from var i : Integer init until i == level loop stdio.write(" ") i := i + end end } Figure 6.4.5 : Définition du nouvel élément level aspect class Write { / syntax : write(prompt, parameter) method print(label : Label) is label.alignLevel() stdio.write("write(\"" + prompt + "\" + ") parameter.print(label) stdio.writeln(");") } end Figure 6.4.6 : définition de l’opération print() pour la commande Write 53 Pour utiliser le PrettyPrinter, l’interpréter doit simplement importer le fichier WrenPrettyPrinter.kmt et puis évoquer l’opération print() Jusqu’à maintenant, chaque concept de Wren est supporté deux opérations : eval() pour évaluer des expressions et print() pour le PrettyPrinter Cette figure illustre les changements dans le fichier qui définit l’interpréteur de WrenPrint par rapport celui de WrenBasic D’abord, le ligne «require " /ext/WrenPrettyPrinter.kmt" » pour pouvoir utiliser le PrettyPrinter Puis, l’appel « root.print(label) » pour exécuter le PrettyPrinter require kermeta //original semantics require " /dynsemantics/WrenDynSemantics.kmt" //extended semantics require " /ext/WrenPrettyPrinter.kmt" / execute Wren PrettyPrinter stdio.writeln("run WrenPrettyPrinter ") label.initLevel() root.print(label) stdio.writeln("printer done!") stdio.writeln("") / run the program stdio.writeln("start executing ") root.eval(label) Figure 6.4.7 : Changement dans le fichier WrenInterpreter.kmt pour WrenPrint Le résultat de l’exécution de l’interpréteur est donné dans la figure 6.4.8 Figure 6.4.8 : Résultat de WrenPrint 54 6.4.4 Combinaison les extensions Pour avoir la version WrenRepeatPrint, c’est-à-dire le nouveau langage supporte le nouveau concept Repeat et la nouvelle opération print(), on combine les deux extensions, le WrenRepeat et le WrenPrint D’abord, l’opération print() doit être définie pour le concept Repeat dans l’extension WrenRepeat comme dans la figure suivante Pour pouvoir définir l’opération print() on doit importer le fichier WrenPrettyPrinter.kmt package kmWren; require kermeta require " /dynsemantics/WrenDynSemantics.kmt" require " /ext/WrenPrettyPrinter.kmt" package ASM{ aspect class Repeat { method eval(label : Label) : Integer is end / for updating the method print() method print(label : Label) is label.alignLevel() stdio.writeln("repeat ") label.incLevel() block.print(label) label.decLevel() label.alignLevel() stdio.write("until ") condition.print(label) stdio.writeln(";") } end } Figure 6.4.9 : définition l’opération print() pour le concept Repeat Dans le fichier WrenInterpreter.kmt, on n’importe pas WrenPrettyPrinter.kmt, ni WrenDynSemantics.kmt parce que les deux fichiers sont déjà importés dans le fichier WrenRepeat.kmt package kmWren; require kermeta //original semantics //require " /dynsemantics/WrenDynSemantics.kmt" //extended semantics //require " /ext/WrenPrettyPrinter.kmt" require " /ext/WrenRepeat.kmt" Figure 6.4.10 : importation dans WrenInterpreter.kmt pour WrenRepeatPrint 55 En fin, un résultat de la version WrenRepeatPrint, une combinaison des WrenRepeat et WrenPrint, est présenté dans la figure suivante Figure 6.4.11 : Résultat de WrenRepeatPrint On peut voir gauche, le joli affichage du modèle entré est en haut et les résultats de l’exécution du programme sont en base 6.5 Conclusion Dans ce chapitre, je viens de présenter comment définir un métamodèle du langage Wren et implémenter son interpréteur sous Kermeta Les sémantiques opérationnelles sont spécifiées directement en ajoutant les comportements au métamodèle ASM du Wren J’ai aussi présenté mon expérimentation pour le développement d’une famille des langages de Wren Trois extensions du Wren sont développées 56 D’abord, WrenRepeat pour supporter une nouvelle commande Repeat, puis WrenPrint qui fournit un PrettyPrinter et en fin WrenRepeatPrint est une combinaison de deux extension WrenRepeat et WrenPrint Les extensions sont faites facilement sous Kermeta Parce que Kermeta permet de développer un langage par plusieurs métamodèles aspects distingués Chaque métamodèle représente un aspect du langage spécifié Autrement dit, un langage est développé par des modules indépendants A la fin, les métamodèles aspects sont tissés pour obtenir un métamodèle unique qui représente entièrement le langage De cette faỗon, Kermeta permet non seulement de dộfinir la sộmantique opérationnelle des métamodèles mais aussi de développer un langage de manière modulaire 57 Chapitre Conclusion et Perspective Dans ce chapitre, je résume notre approche pour la spécification modulaire de sémantique opérationnelle et les avantages que celle-ci apporte Ensuite, je présente les perspectives et travaux futurs qui pourront contribuer notre démarche 7.1 Conclusion L’objectif de ce mémoire est d’étudier les issues de modularité dans la définition des sémantiques des langages dédiés L’IDM fournit quelques approches sur l’ingénierie des langages L’IDM augmente bien le niveau d’abstraction du développement des langages dédiés Cependant, la pratique actuelle de la spécification de sémantique opérationnelle ne levie pas très bien la modularité Dans la pratique, ce qui rend difficile gérer les changements dans un DSL ou travailler efficacement avec les familles de langages liés Dans ce contexte, Modular SOS est une approche de définir des sémantiques opérationnelles de manière modulaire L’idée principale de MSOS est qu’on profite la structure Etiquette du système de transition L’étiquette dans MSOS est une structure infinie qui encapsule toutes les structures sémantiques Les composants dans l’étiquette sont ajoutés selon des exigences Chaque composant est accédée indépendamment des autres par deux opérations set() et get() Le chapitre présente la spécification de MSOS du langage Wren, un langage impératif simple que je l’utilise comme une étude de cas Les sémantiques 58 MSOS sont spécifiées pour les évaluations de expressions et les exécutions de commandes En outre, le langage de méta-modélisation exécutable Kermeta permet non seulement de définir les métamodèles de syntaxe abstraite mais aussi de définir les comportements de métamodèles ou les sémantiques opérationnelles de langages spécifiés Kermeta est aussi un langage orienté-aspects, il permet de développer les métamodèles distingués qui représentent les aspects de langages En fin, ces métamodèles sont tissés par le Weaver de Kermeta pour obtenir un métamodèle unique qui représente entièrement le langage spécifié Avec ces avantages, en utilisant Kermeta, on peut définir des constructions de sémantique opérationnelle comme les petits blocs qui pourraient facilement être étendu et combinés pour construire une famille de langages associés Dans ce mémoire, j’ai définit le langage Wren, implémenté son interpréteur et développé une évolution de Wren en utilisant Kermeta Trois extensions de Wren sont effectuées, d’abord j’ai fait une extension de données WrenRepeat qui définit un nouveau concept Repeat, en suite j’ai fait une extension d’opérations WrenPrint qui ajoute une nouvelle opération print() aux concepts de Wren Enfin, une combinaison des deux extensions est déjà mise en œuvre pour obtenir une nouvelle version WrenRepeatPrint D’ailleurs, l’idée du typage de modốles reỗoit plus en plus dattention ce jour Un mécanisme de traiter les modèles comme les premières classes va levier la puissance des modèles dans l’IDM et permettre de définir des artefacts de manière qu’ils soient robuste des variations et l’évolution des métamodèles 7.2 Perspective L’une des caractéristiques des systèmes de types est que, en plus de fournir une technique de vérification statique, ils formalisent des mécanismes d’abstraction Ici, les modèles et les types de modèles ont été formalisés comme les constructions d’abstraction pour composer des systèmes rédigés par les modèles Les constructions peuvent être appropriées pour encapsuler la réutilisation lorsqu’on développe un système dans l’IDM Sur les avances récents du typage de modèles, il porte une nouvelle approche de l’utilisation de types de modèle comme une structuration des concepts pour la définition de la sémantique opérationnelle modulaire pour les langages spécifiques en utilisant métamodèles Les métamodèles qui représentent les sémantiques pourraient être codés comme les modules de sémantique opérationnelle et les types de modèles dont ils dépendent syntaxiquement Ceux-ci pourraient alors être appliquées pour les familles avec des standardisations structurelles et sémantiques 59 Dans le cas de l’évaluation du langage Wren, une fois les aspects tissées, WrenRepeat et WrenPrint formeront des sous-types (au sens de typage de modèles) de WrenBasic, et que WrenRepeatPrint sera un sous-type des deux extensions WrenRepeat et WrenPrint Cette idée est démontrée simplement l’aide du formalisme de Jim Steel [Ste07, SJ07b] comme la suite Le métamodèle de WrenBasic se compose des structures basiques, il forme aussi un type basique de Wren : WrenBasicT package WrenBasic{ aspect class Instruction { operation eval(label : Label) : Integer is abstract } } modeltype WrenBasicT {WrenBasic::Instruction} Figure 7.2.1 : Le type basique de Wren Deux variétés WrenPrint et WrenRepeat sont des extensions de WrenBasic, ils forment les sous-types de WrenBasicT Le mot-clé merges indique qu’on va réutiliser des ressources du métamodèle WrenBasic chez WrenPrint et WrenRepeat package WrenPrint merges WrenBasic{ aspect class Instruction { operation print(label : Label) is abstract } } modeltype WrenPrintT {WrenPrint::Instruction} package WrenRepeat merges WrenBasic{ aspect class Repeat { method eval(label : Label) : Integer is var cond : Integer end from cond := until cond == loop result := block.eval(label) cond := condition.eval(label) end } } modeltype WrenRepeatT {WrenRepeat::Instruction, WrenRepeat::Repeat} Figure 7.2.2 : Les deux sous-type WrenPrint et WrenRepeat 60 package WrenRepeatPrint merges WrenRepeat, WrenPrint{ aspect class Repeat { / for updating the method print() method print(label : Label) is label.alignLevel() stdio.writeln("repeat ") label.incLevel() block.print(label) label.decLevel() label.alignLevel() stdio.write("until ") condition.print(label) stdio.writeln(";") } end } modeltype WrenRepeatPrintT {WrenRepeatPrint::Instruction, WrenRepeatPrint::Repeat} Figure 7.2.3 : Le sous-type WrenRepeatPrint Au tour de WrenRepeatPrint, il forme un sous-type de WrenRepeat et WrenPrint Son métamodèle est formé en réutilisant les deux métamodèle de WrenRepeat et de WrenPrint Et puis on ajoute l’opérateur de PrettyPrinter la définition de la structure Repeat 61 Références Luca Aceto, Wan Fokkink, Chris Verhoef, “Structural Operational Semantics”, 2001 [AK07] Colin Atkinson, Thomas Kühne, “Model-Driven Development: A Metamodeling Foundation”, 2003 [BBB+04] Bézivin, J., M Blay, M Bouzhegoud, J Estublier, J.-M Favre, S Gérard, and J.-M Jézéquel, Rapport de Synthèse de l'AS CNRS sur le MDA (Model Driven Architecture) 2004, CNRS [AFV01] [Béz01] Bézivin, J From Object Composition to Model Transformation with the MDA in 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems (TOOLS39) 2001 Santa Barbara, California p 350-354 [BGS05] Xavier Blan, Marie-Pierre Gervais, Prazee Sriplakich, “Model Bus : Towards the Interoperability of Modelling Tools”, 2005 [BHMM03] C de O.Braga, E Hermann Haeusler, José Meseguer, and Peter D Mosses, “Mapping Modular SOS to Rewriting Logic”, PhD thesis, 2003 [Bra01] C de O.Braga, “Rewriting Logic as a Semantic Framework for Modular Structural Operational Semantics”, PhD thesis, 2001 [BV05] Matteo Bordin, Tullio Vardanega, “A Domain-specific Metamodel for Reusable Object-Oriented High-Integrity Components”, 2005 [BV07] Christiano Braga, Alberto Verdejo, “Modular Structural Operational Semantics with Strategies”, Electronics Notes in Theoretical Computer Science 2007 [CB05] Fabricio Chalub, Christiano Braga, “MAUDE MSOS Tool Manual”, 2005 [CCGT07] Bent Combemale, Xavier Crégut, Pierre-Lọc Garoche, Xavier Thirioux, Expérimentation pour la définition d’une sémantique dans l’IDM, IDM 2007 [CES+a] Tony Clark, Andy Evans, Paul Sammut, James Willans, “An eXecutable Metamodelling Facility for Domain Specific Language Design” [CES+b] Tony Clark, Andy Evans, Paul Sammut, James Willans, “Language Driven Development and MDA” [CESW08a] Tony Clark, Andy Evans, Paul Sammut, and James Willans Applied metamodelling : A foundation for language driven development Second edition 2008 62 [CESW08b] T S F S A B M s J O M C A R I [Coo04] [CRC+06] [Dan03] [DE07] [DK01] [DSMC] [ESS] H F D H M E [ESS06] [Fav04a] J M S S J m o D M T R f F m [Fav04b] [Fei06] [FFR06] [Fle06] [FR03] R S H O [Gan85] 63 [GBNG02] Jeff Gray, Ted Bapty, Sandeep Neema, An iruddha Gokhale, “Aspect-Oriented Domain-Specific Modeling”, 2002 [Har06] [HR04] [Iva98] [Jéz08] [JGH08] [Jon96] [Kar07] [KCA07] Robert Harper, “Practical Foundations for Programming Languages”, 2006 David Harel, Bernhard Rumpe, “Meaningful Modeling : What’s the Semantics of ‘Semantics’ ?”, IEEE 2004 Mirijana Ivanovic, “Modular Executable Langage Specification in Haskell”, 1998 Jean-Marc Jézéquel, “Modeling and Aspect Weaving”, Journal of Software and Systems Modeling (SoSyM), 7(2):209 218, may 2008 Mauro Jaskelioff, Neil Ghani, Graham Hutton, “Modularity and Implementation of Mathematical Operational Semantics”, 2008 Capers Jones Programming Languages Table, Software Productivity Research Inc., 1996 Martin Karlsch, “A model-driven framework for domain specific languages”, Thesis 2007 Ali Koudri, Joël Champeau, Denis Aulagnier, “Une sémantique opérationnelle pour une meilleure méta-modélisation”, SéMo 2007 [Ken02] [Kle07] [LBC05] [LC06] [MCF03] [MFF+05] [MOF97] [Mos99] [Mos00] Stuart Kent Model driven engineering In Proc of the 3rd Intl Conf on Integrated Formal Method—IFM 2002, volume 2335, page 286, 2002 Anneke Kleppe, “A Language Description is More than a Metamodel”, ATEM 2007 Roberto E Lopez-Herrejon, Don Batory, William Cook, “Evaluating Support for Features in Advanced Modularization Technologies”, 2005 Keunwoo Lee, Craig Chambers, “Parameterized Modules for Classes and Extensible Function”, 2006 Stephen J Mellor, Anthony N Clark, and Takao Futagami Modeldriven development pages 14–18, September 2003 Pierre-Alain Muller, Franck Fleurey, Frédéric Fondement, Michel Hassenforder, Rémi Schneckenburger, Sébastien Gérard, Jean-Marc Jézéquel, “Model-Driven Analysis and Synthesis of Concrete Syntax”, 2005 OMG, Meta Object Facility (MOF) Specification, in OMG Document 1997 Peter D Mosses, “Foundations of Modular SOS”, BRICS Report Series, 1999 Peter D Mosses, “Modularity in Meta-Language” , BRICS Report Series, 2000 64 [Mos02] Peter D Mosses, “Pragmatics of Modular SOS”, BRICS Article, 2002 [Mos03] Peter D Mosses, “Modular SOS: Differences from SOS”, APPSEM- [Mos04] [Mos05] [Mou05] [Mul06] [Plo81a] [Plo81b] [RPR+06] [RRDV07] [Sad07] [Ste07] [SJ04] [SJ05] [SJ07a] II Workshop, 2003 Peter D Mosses, “Exploiting Labels in Structural Operational Semantics”, ACM Symposium on Applied Computing, 2004 Peter D Mosses, “Modular Structural Operational Semantics”, BRICS Report Series, 2005 MohammadReza Mousavi, “Structuring Structural Operational Semantics”, Technische Universiteit Eindhoven, 2005 Pierre-Alain Muller, De la modélisation objet des logiciels la metamodélisation des langages informatiques, Habilitation diriger des recherches 2006 Gordon D Plotkin, “The Origins of Structural Operational Semantics”, Journal of Logic and Algebraic Programming, 1981 Gordon D Plotkin, “A Structural Approach to Operational Semantics”, Technical Report, DAIMI FN-19, Computer Science Department, Aarhus University, Aarhus, Denmark, 1981 N Rinetzky, A Poetzsch-Heffter, G Ramalingam, M Sagiv, E Yahav, “Modular Shape Analysis for Dynamically Encapsulated Programs”, 2006 J Raul Romero, José E Rivera, Francisco Duran, Antonio Vallecillo “Formal and Tool Support for Model Driven Engineering with Maude”, 2007 Daniel A Sadilek, “Prototyping Domain-Specific Languages for Wireless Sensor Networks”, 2007 Jim Steel, “Typage de modèles”, Thèse 2007 Jim Steel, Jean-Marc Jézéquel, “Typing Relationships in MDA”, 2004 Jim Steel, Jean-Marc Jézéquel, “Model Typing for Improving Reuse in Model-Driven Engineering”, 2005 Jim Steel, Jean-Marc Jézéquel, “On model typing”, 2007 65 [SJ07b] [Slo95] [SRM07] [TS06] [Wyk05] [Zha05] [Zdu05] [ZO05] Jim Steel, Jean-Marc Jézéquel, “Model Typing and the Expression Problem”, 2007 Kenneth Slonneger, “Formal Syntax and Semantics of Programming Languages”, 1995 Traian Florin Serbanuta, Grigore Rosu, José Meseguer, “A Rewriting Logic Approach to Operational Semantics – Extended Abstract”, SOS 2007 J V Tucker, K Stephenson, “Data, Syntax and Semantics: An introduction to Modeling Programming Language”, 2006 Eric Van Wyk, “Modular Domain-Specific Language Extensions”, 2005 Liping Zhao, “Designing Application Domain Models with Roles”, 2005 Uwe Zdun, “Concepts for Model-Driven Design and Evolution of Domain-Specific Languages”, 2005 Matthias Zenger, Martin Odersky, “Independently Extensible Solutions to the Expression Problem”, 2005 66 ... 4.1.1 Structural Operational Semantics (SOS) 22 4.1.2 Problème de modularité dans la SOS 23 4.1.3 Modular SOS – a variant of SOS 25 4.2 LANGAGE DE META-MODELISATION... modulaires de sémantique opérationnelle (Modular Structural Operational Semantics) et puis de s’appuyer sur les progrès récents de Typage des Modèles (Model Typing) La démarche devrait permettre de définir... Kermeta 28 4.2.4 Utilisation du langage Kermeta 29 4.3 LE TYPAGE DES MODELES (MODEL TYPING) 30 4.3.1 Contexte 30 4.3.2 Système de types

Ngày đăng: 30/10/2020, 21:18

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[Har06] Robert Harper, “Practical Foundations for Programming Languages”, 2006 Sách, tạp chí
Tiêu đề: Practical Foundations for ProgrammingLanguages”
Năm: 2006
[HR04] David Harel, Bernhard Rumpe, “Meaningful Modeling : What’s the Semantics of ‘Semantics’ ?”, IEEE 2004 Sách, tạp chí
Tiêu đề: Meaningful Modeling : What’s theSemantics of ‘Semantics’ ?”
Năm: 2004
[Iva98] Mirijana Ivanovic, “Modular Executable Langage Specification in Haskell”, 1998.[Jéz08] Jean-Marc Jézéquel, “Modeling and Aspect Weaving”, Journal of Software and Systems Modeling (SoSyM), 7(2):209--218, may 2008 Sách, tạp chí
Tiêu đề: Modular Executable Langage Specification inHaskell”", 1998.[Jéz08] Jean-Marc Jézéquel, “Modeling and Aspect Weaving
Năm: 2008
[JGH08] Mauro Jaskelio ff , Neil Ghani, Graham Hutton, “Modularity and Implementation of Mathematical Operational Semantics”, 2008 Sách, tạp chí
Tiêu đề: Modularity andImplementation of Mathematical Operational Semantics”
Năm: 2008
[Jon96] Capers Jones. Programming Languages Table, Software Productivity Research Inc., 1996 Sách, tạp chí
Tiêu đề: Programming Languages Table
Năm: 1996
[Kar07] Martin Karlsch, “A model-driven framework for domain specific languages”, Thesis 2007 Sách, tạp chí
Tiêu đề: A model-driven framework for domain specificlanguages”
Năm: 2007
[Kle07] Anneke Kleppe, “A Language Description is More than a Metamodel”, ATEM 2007.[LBC05] Roberto E. Lopez-Herrejon, Don Batory, William Cook, “Evaluating Support for Features in Advanced ModularizationTechnologies”, 2005 Sách, tạp chí
Tiêu đề: A Language Description is More than aMetamodel”", ATEM 2007.[LBC05] Roberto E. Lopez-Herrejon, Don Batory, William Cook, “"EvaluatingSupport for Features in Advanced Modularization "Technologies”
Năm: 2005
[LC06] Keunwoo Lee, Craig Chambers, “Parameterized Modules for Classes and Extensible Function”, 2006 Sách, tạp chí
Tiêu đề: Parameterized Modules forClasses and Extensible Function”
Năm: 2006
[MCF03] Stephen J. Mellor, Anthony N. Clark, and Takao Futagami. Model- driven development. pages 14–18, September 2003 Sách, tạp chí
Tiêu đề: Model-driven developmen
Năm: 2003
[MFF+05] Pierre-Alain Muller, Franck Fleurey, Frédéric Fondement, Michel Hassenforder, Rémi Schneckenburger, Sébastien Gérard, Jean-Marc Jézéquel, “Model-Driven Analysis and Synthesis of Concrete Syntax”, 2005 Sách, tạp chí
Tiêu đề: Model-Driven Analysis and Synthesis of Concrete"Syntax”
Năm: 2005
[MOF97] OMG, Meta Object Facility (MOF) Specification, in OMG Document. 1997 Sách, tạp chí
Tiêu đề: Meta Object Facility (MOF) Specification
Năm: 1997
[Mos99] Peter D. Mosses, “Foundations of Modular SOS”, BRICS Report Series, 1999 Sách, tạp chí
Tiêu đề: Foundations of Modular SOS”
Năm: 1999
[Mos02] Peter D. Mosses, “Pragmatics of Modular SOS”, BRICS Article, 2002 Sách, tạp chí
Tiêu đề: Pragmatics of Modular SOS”
Năm: 2002
[Mos03] Peter D. Mosses, “Modular SOS: Differences from SOS”, APPSEM- II Workshop, 2003 Sách, tạp chí
Tiêu đề: Modular SOS: Differences from SOS”
Năm: 2003
[Mos04] Peter D. Mosses, “Exploiting Labels in Structural Operational Semantics”, ACM Symposium on Applied Computing, 2004 Sách, tạp chí
Tiêu đề: Exploiting Labels in Structural OperationalSemantics”
Năm: 2004
[Mos05] Peter D. Mosses, “Modular Structural Operational Semantics”, BRICS Report Series, 2005 Sách, tạp chí
Tiêu đề: Modular Structural Operational Semantics”
Năm: 2005
[Mou05] MohammadReza Mousavi, “Structuring Structural Operational Semantics”, Technische Universiteit Eindhoven, 2005 Sách, tạp chí
Tiêu đề: Structuring Structural OperationalSemantics”
Năm: 2005
[Mul06] Pierre-Alain Muller, De la modélisation objet des logiciels à la metamodélisation des langages informatiques, Habilitation à diriger des recherches 2006 Sách, tạp chí
Tiêu đề: De la modélisation objet des logiciels à lametamodélisation des langages informatiques
Năm: 2006
[Plo81a] Gordon D. Plotkin, “The Origins of Structural Operational Semantics”, Journal of Logic and Algebraic Programming, 1981 Sách, tạp chí
Tiêu đề: The Origins of Structural OperationalSemantics”
Năm: 1981
“Formal and Tool Support for Model Driven Engineering with Maude”, 2007 Sách, tạp chí
Tiêu đề: Formal and Tool Support for Model Driven Engineering withMaude”
Năm: 2007

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w