« Home « Kết quả tìm kiếm

MODEL DRIVEN OPERATIONAL SEMANTICS


Tóm tắt Xem thử

- PRESENTATION DE L’IRISA.
- L’ETAT DE L’ART.
- 6.3 I MPLEMENTATION DE L ’I NTERPRETEUR.
- Les grandes tendances actuelles de l’IDM sont l’utilisation de langages dédiés (Domain- Specific Languages), les approches orientées aspects et les approches à base de composants.
- L’idée de l’IDM est de les traiter comme des entités centrales dans le développement logiciel.
- 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)..
- Présentation de l’IRISA.
- 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..
- L’objectif de ce chapitre est d’introduire le contexte du sujet de stage, d’abord d’un survol de l’IDM, avec les notions de modélisation et de transformation des modèles, puis de présenter les langages dédiés du point de vue de l’IDM..
- Figure 3.1.1 : Exemple de transformation de l’abstraction au code.
- Figure 3.1.2 : Pile à quatre couches du MOF.
- Cela n’est pas restreint au domaine de l’informatique : une carte par exemple est le modèle d’une région géographique particulière, sa légende est le métamodèle de la carte.
- Les modèles, métamodèles et méta-métamodèles sont des concepts de base de l’ingénierie des modèles.
- Les métamodèles : Un modèle est défini à l’aide d’un langage de modélisation structuré.
- Les transformations de modèles forment une base de l’approche MDE, puisqu’il s’agit d’automatiser la transformation d’un modèle source en un modèle cible.
- La Figure 3.1.3 schématise ce processus..
- Figure 3.1.3 : Transformation de modèles.
- Dans le cadre de l’IDM, un DSL est construit comme une collection de modèles coordonnés les uns les autres.
- De cette façon, la puissance de l’unification des modèles est bien augmentée.
- Les langages de méta- modélisation tels que le standard de l’OMG MOF, offrent les concepts et relations élémentaires en termes desquels il est possible de décrire un métamodèle représentant cette syntaxe abstraite.
- Avec le développement de l’Ingénierie des Modèles, il porte quelques approches pour spécifier les langages dédiés et augmente le niveau d’abstraction de la spécification des langages..
- L’Etat de l’Art.
- Cette session présente des notions principales de SOS et puis souligne la différence de MSOS par rapport à SOS qui est le facteur de l’augmentation de modularité dans des descriptions des langages spécifiés..
- La règle (3) présente l’évaluation de l’opération binaire.
- α de l’étiquette sur cette transition avec la configuration avant la transition représente l’état avant la transition.
- Dans la communauté de l’ingénierie dirigée par les modèles, les métalangages à objets tel que (E)MOF ou Ecore sont de plus en plus utilisés pour spécifier des métamodèles.
- Figure 4.2.1 : Positionnement de Kermeta.
- La figure 4.2.1 illustre le positionnement de Kermeta dans des différents langages du domaine de l’IDM.
- Figure 4.2.2 : Extention d'EMOF et Promotion de Kermeta.
- La seconde transformation représentée sur la figure 4.2.2 est la Promotion.
- Figure 4.2.3 : partie structurelle de Kermeta.
- Figure 4.2.4 : partie comportemental de Kermeta.
- Kermeta a été appliqué avec succès à divers travaux dans le domaine de l’Ingénierie Dirigée par les Modèles.
- En dehors des travaux de l’équipe Triskell,.
- La modélisation par aspects est un domaine de recherche actif de l’ingénierie des modèles..
- Au cœur de l’IDM, les modèles sont chacun définis par rapport à un métamodèle, qui définit la structure d’un langage comme l’ensemble des concepts et des relations qu’il o ff re au modeleur.
- Par exemple, dans la figure 4.3.1, est-ce que la transformation, écrite pour accepter des modèles de MM1, fonctionnera avec les modèles de MM2.
- Figure 4.3.1 : Réutilisation d’une transformation avec différents types de modèles.
- Cela dépend de l’existence d’une technique pour décider si le métamodèle variant est su ffi samment compatible avec le métamodèle d’origine.
- Dans ce contexte, Typage de Modèles [SJ06, Ste07] présente une approche sur ce problème de l’IDM.
- Consulter ce domaine, le typage des modèles applique et adapte ses idées sur les structures spécifiques et des problèmes de l’Ingénierie Dirigé par des Modèles.
- Dans le cadre de l’IDM, le typage des modèles est une approche de base à la formalisation de modèles et de leurs types, et à fournir un mécanisme par lequel les modèles d'un type peuvent être utilisés où les modèles d'un autre type étaient souhaités .
- Figure 4.3.2 : MétaModèle pour les Machines à Etats simples.
- pour des machines à états avec plusieurs états initiales (figure 4.3.3), ou de 0..1 à 1..1 alors que chaque machine à états a exactement un état initiale (figure 4.3.4).
- Figure 4.3.3 : MétaModèle pour les Machines à Etats avec plusieurs états initiales.
- Figure 4.3.4 : MétaModèle pour les Machines à Etats avec des états initiales obliatoires.
- Figure 4.3.5 : MétaModèle pour les Machines à Etats composites.
- Figure 4.3.6 : MétaModèle des Machines à Etats avec des états finales.
- Simple (figure 4.3.2) YES YES NO NO YES.
- Multiple-Start (figure 4.3.3) NO YES NO NO NO.
- Mandatory-Start (figure 4.3.4) YES YES YES NO YES.
- Composite (figure 4.3.5) YES YES NO YES YES.
- Enfin, l’idée d’utiliser des modèles comme les premières classes attire maintenant beaucoup d’attentions dans la communauté de l’IDM.
- Figure 5.1.1 : Syntaxe Abstraite de Wren.
- Figure 5.1.2 : Un programme de Wren program tobinary is.
- Figure 5.2.1 : Syntaxe abstraite de Wren (reformée).
- Sémantique Opérationnelle Structurelle (SOS) fournit un système déductif, basé sur la syntaxe abstraite d’un langage de la programmation, qui permet des transformations des éléments d’un langage.
- retourner la valeur de l’identifier id..
- mettre à jour la valeur de l’identifier id par n..
- Figure 5.2.2 : SOS règles de l’évaluation des expressions.
- Figure 5.2.3 : SOS règles des commandes.
- Dans le cadre de la spécification MSOS, une étiquette (label) représente l’état de sémantique d’un programme.
- Figure 5.3.1 : MSOS règles de l’évaluation des expressions.
- Figure 5.3.2 : MSOS règles des commandes.
- Les langages de méta- modélisation tels que le standard de l’OMG MOF, offre les concepts et relations élémentaires en termes desquels il est possible de décrire un métamodèle représentant cette syntaxe abstraite..
- Figure 6.1.1 : le métamodèle Ecore de Wren.
- Figure 6.2.1 : l’opération eval() de l’instruction Write.
- Figure 6.2.2 : l’opération eval() de l’opérateur binaire Plus.
- Cependant, l’opération eval() de l’opérateur Plus additionne simplement les deux opérandes à gauche et à droite de cet opérateur.
- 6.3 Implémentation de l’Interpréteur.
- La figure 6.3.1 schématise un interpréteur de Wren..
- Figure 6.3.1 : Interpréteur de Wren aspect class Write.
- Figure 6.3.1 : modèle tobinary.
- Figure 6.3.2 : l’opération pour charger un modèle.
- L’exécution de l’interpréteur est provoquée par le lancement de l’opération execute(uri) qui est montrée comme suit.
- Figure 6.3.3 : l’opération execute().
- Après le chargement d’un modèle entré, puis l’initialisation des arguments nécessaire de l’interpréteur, l’exécution commence par l’évaluation le nœud root de l’arbre de syntaxe abstraite.
- Le résultat de l’exécution de l’interpréteur est illustré dans la figure suivante 6.3.4.
- Figure 6.3.4 : Résultat de l’exécution de l’interpréteur.
- Figure 6.4.1 : Evolution de Wren.
- Pour l’interpréteur, on change seulement les lignes de l’instruction require..
- Figure 6.4.2 : Changement dans le fichier WrenInterpreter.kmt pour WrenRepeat package kmWren;.
- Figure 6.4.3 : Extension WrenRepeat.
- Figure 6.4.4 : Résultat de WrenRepeat.
- 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.
- faciliter observer l’exécution de l’interpréteur.
- Figure 6.4.5 : Définition du nouvel élément level.
- Figure 6.4.6 : définition de l’opération print() pour la commande Write.
- 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.
- Figure 6.4.9 : définition l’opération print() pour le concept Repeat.
- Figure 6.4.10 : importation dans WrenInterpreter.kmt pour WrenRepeatPrint package kmWren;.
- Figure 6.4.11 : Résultat de WrenRepeatPrint.
- 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.
- Figure 7.2.1 : Le type basique de Wren.
- Figure 7.2.2 : Les deux sous-type WrenPrint et WrenRepeat package WrenBasic{.
- Figure 7.2.3 : Le sous-type WrenRepeatPrint.
- de O.Braga, E.
- de O.Braga, “Rewriting Logic as a Semantic Framework for Modular Structural Operational Semantics”, PhD thesis, 2001.