12 resultados para programming languages

em Université de Montréal, Canada


Relevância:

60.00% 60.00%

Publicador:

Resumo:

Ce mémoire vise à recenser les avantages et les inconvénients de l'utilisation du langage de programmation fonctionnel dynamique Scheme pour le développement de jeux vidéo. Pour ce faire, la méthode utilisée est d'abord basée sur une approche plus théorique. En effet, une étude des besoins au niveau de la programmation exprimés par ce type de développement, ainsi qu'une description détaillant les fonctionnalités du langage Scheme pertinentes au développement de jeux vidéo sont données afin de bien mettre en contexte le sujet. Par la suite, une approche pratique est utilisée en effectuant le développement de deux jeux vidéo de complexités croissantes: Space Invaders et Lode Runner. Le développement de ces jeux vidéo a mené à l'extension du langage Scheme par plusieurs langages spécifiques au domaine et bibliothèques, dont notamment un système de programmation orienté objets et un système de coroutines. L'expérience acquise par le développement de ces jeux est finalement comparée à celle d'autres développeurs de jeux vidéo de l'industrie qui ont utilisé Scheme pour la création de titres commerciaux. En résumé, l'utilisation de ce langage a permis d'atteindre un haut niveau d'abstraction favorisant la modularité des jeux développés sans affecter les performances de ces derniers.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Ce mémoire présente une implantation de la création paresseuse de tâches desti- née à des systèmes multiprocesseurs à mémoire distribuée. Elle offre un sous-ensemble des fonctionnalités du Message-Passing Interface et permet de paralléliser certains problèmes qui se partitionnent difficilement de manière statique grâce à un système de partitionnement dynamique et de balancement de charge. Pour ce faire, il se base sur le langage Multilisp, un dialecte de Scheme orienté vers le traitement parallèle, et implante sur ce dernier une interface semblable à MPI permettant le calcul distribué multipro- cessus. Ce système offre un langage beaucoup plus riche et expressif que le C et réduit considérablement le travail nécessaire au programmeur pour pouvoir développer des programmes équivalents à ceux en MPI. Enfin, le partitionnement dynamique permet de concevoir des programmes qui seraient très complexes à réaliser sur MPI. Des tests ont été effectués sur un système local à 16 processeurs et une grappe à 16 processeurs et il offre de bonnes accélérations en comparaison à des programmes séquentiels équiva- lents ainsi que des performances acceptables par rapport à MPI. Ce mémoire démontre que l’usage des futures comme technique de partitionnement dynamique est faisable sur des multiprocesseurs à mémoire distribuée.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Les langages de programmation typés dynamiquement tels que JavaScript et Python repoussent la vérification de typage jusqu’au moment de l’exécution. Afin d’optimiser la performance de ces langages, les implémentations de machines virtuelles pour langages dynamiques doivent tenter d’éliminer les tests de typage dynamiques redondants. Cela se fait habituellement en utilisant une analyse d’inférence de types. Cependant, les analyses de ce genre sont souvent coûteuses et impliquent des compromis entre le temps de compilation et la précision des résultats obtenus. Ceci a conduit à la conception d’architectures de VM de plus en plus complexes. Nous proposons le versionnement paresseux de blocs de base, une technique de compilation à la volée simple qui élimine efficacement les tests de typage dynamiques redondants sur les chemins d’exécution critiques. Cette nouvelle approche génère paresseusement des versions spécialisées des blocs de base tout en propageant de l’information de typage contextualisée. Notre technique ne nécessite pas l’utilisation d’analyses de programme coûteuses, n’est pas contrainte par les limitations de précision des analyses d’inférence de types traditionnelles et évite la complexité des techniques d’optimisation spéculatives. Trois extensions sont apportées au versionnement de blocs de base afin de lui donner des capacités d’optimisation interprocédurale. Une première extension lui donne la possibilité de joindre des informations de typage aux propriétés des objets et aux variables globales. Puis, la spécialisation de points d’entrée lui permet de passer de l’information de typage des fonctions appellantes aux fonctions appellées. Finalement, la spécialisation des continuations d’appels permet de transmettre le type des valeurs de retour des fonctions appellées aux appellants sans coût dynamique. Nous démontrons empiriquement que ces extensions permettent au versionnement de blocs de base d’éliminer plus de tests de typage dynamiques que toute analyse d’inférence de typage statique.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

La conception de systèmes hétérogènes exige deux étapes importantes, à savoir : la modélisation et la simulation. Habituellement, des simulateurs sont reliés et synchronisés en employant un bus de co-simulation. Les approches courantes ont beaucoup d’inconvénients : elles ne sont pas toujours adaptées aux environnements distribués, le temps d’exécution de simulation peut être très décevant, et chaque simulateur a son propre noyau de simulation. Nous proposons une nouvelle approche qui consiste au développement d’un simulateur compilé multi-langage où chaque modèle peut être décrit en employant différents langages de modélisation tel que SystemC, ESyS.Net ou autres. Chaque modèle contient généralement des modules et des moyens de communications entre eux. Les modules décrivent des fonctionnalités propres à un système souhaité. Leur description est réalisée en utilisant la programmation orientée objet et peut être décrite en utilisant une syntaxe que l’utilisateur aura choisie. Nous proposons ainsi une séparation entre le langage de modélisation et la simulation. Les modèles sont transformés en une même représentation interne qui pourrait être vue comme ensemble d’objets. Notre environnement compile les objets internes en produisant un code unifié au lieu d’utiliser plusieurs langages de modélisation qui ajoutent beaucoup de mécanismes de communications et des informations supplémentaires. Les optimisations peuvent inclure différents mécanismes tels que le regroupement des processus en un seul processus séquentiel tout en respectant la sémantique des modèles. Nous utiliserons deux niveaux d’abstraction soit le « register transfer level » (RTL) et le « transaction level modeling » (TLM). Le RTL permet une modélisation à bas niveau d’abstraction et la communication entre les modules se fait à l’aide de signaux et des signalisations. Le TLM est une modélisation d’une communication transactionnelle à un plus haut niveau d’abstraction. Notre objectif est de supporter ces deux types de simulation, mais en laissant à l’usager le choix du langage de modélisation. De même, nous proposons d’utiliser un seul noyau au lieu de plusieurs et d’enlever le bus de co-simulation pour accélérer le temps de simulation.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Thèse diffusée initialement dans le cadre d'un projet pilote des Presses de l'Université de Montréal/Centre d'édition numérique UdeM (1997-2008) avec l'autorisation de l'auteur.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Les structures avec des lieurs sont très communes en informatique. Les langages de programmation et les systèmes logiques sont des exemples de structures avec des lieurs. La manipulation de lieurs est délicate, de sorte que l’écriture de programmes qui ma- nipulent ces structures tirerait profit d’un soutien spécifique pour les lieurs. L’environ- nement de programmation Beluga est un exemple d’un tel système. Nous développons et présentons ici un compilateur pour ce système. Parmi les programmes pour lesquels Beluga est spécialement bien adapté, plusieurs peuvent bénéficier d’un compilateur. Par exemple, les programmes pour valider les types (les "type-checkers"), les compilateurs et les interpréteurs tirent profit du soutien spécifique des lieurs et des types dépendants présents dans le langage. Ils nécessitent tous également une exécution efficace, que l’on propose d’obtenir par le biais d’un compilateur. Le but de ce travail est de présenter un nouveau compilateur pour Beluga, qui emploie une représentation interne polyvalente et permet de partager du code entre plusieurs back-ends. Une contribution notable est la compilation du filtrage de Beluga, qui est particulièrement puissante dans ce langage.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

UNE EXPOSITION NÉONATALE À L’OXYGÈNE MÈNE À DES MODIFICATIONS DE LA FONCTION MITOCHONDRIALE CHEZ LE RAT ADULTE Introduction: L’exposition à l’oxygène (O2) des ratons nouveau-nés a des conséquences à l’âge adulte dont une hypertension artérielle (HTA), une dysfonction vasculaire, une néphropénie et des indices de stress oxydant. En considérant que les reins sont encore en développement actif lors des premiers jours après la naissance chez les rats, jouent un rôle clé dans le développement de l’hypertension et qu’une dysfonction mitochondriale est associé à une augmentation du stress oxydant, nous postulons que les conditions délétères néonatales peuvent avoir un impact significatif au niveau rénal sur la modulation de l’expression de protéines clés du fonctionnement mitochondrial et une production mitochondriale excessive d’espèces réactives de l’ O2. Méthodes: Des ratons Sprague-Dawley sont exposés à 80% d’O2 (H) ou 21% O2 (Ctrl) du 3e au 10e jr de vie. En considérant que plusieurs organes des rats sont encore en développement actif à la naissance, ces rongeurs sont un modèle reconnu pour étudier les complications d’une hyperoxie néonatale, comme celles liées à une naissance prématurée chez l’homme. À 4 et à 16 semaines, les reins sont prélevés et les mitochondries sont extraites suivant une méthode d’extraction standard, avec un tampon contenant du sucrose 0.32 M et différentes centrifugations. L’expression des protéines mitochondriales a été mesurée par Western blot, tandis que la production d’ H202 et les activités des enzymes clés du cycle de Krebs ont été évaluées par spectrophotométrie. Les résultats sont exprimés par la moyenne ± SD. Résultats: Les rats mâles H de 16 semaines (n=6) présentent une activité de citrate synthase (considéré standard interne de l’expression protéique et de l’abondance mitochondriales) augmentée (12.4 ± 8.4 vs 4.1 ± 0.5 μmole/mL/min), une diminution de l’activité d’aconitase (enzyme sensible au redox mitochondrial) (0.11 ± 0.05 vs 0.20 ± 0.04 μmoles/min/mg mitochondrie), ainsi qu’une augmentation dans la production de H202 (7.0 ± 1.3 vs 5.4 ± 0.8 ρmoles/mg protéines mitochondriales) comparativement au groupe Ctrl (n=6 mâles et 4 femelles). Le groupe H (vs Ctrl) présente également une diminution dans l’expression de peroxiredoxin-3 (Prx3) (H 0.61±0.06 vs. Ctrl 0.78±0.02 unité relative, -23%; p<0.05), une protéine impliquée dans l’élimination d’ H202, de l’expression du cytochrome C oxidase (Complexe IV) (H 1.02±0.04 vs. Ctrl 1.20±0.02 unité relative, -15%; p<0.05), une protéine de la chaine de respiration mitochondriale, tandis que l’expression de la protéine de découplage (uncoupling protein)-2 (UCP2), impliquée dans la dispersion du gradient proton, est significativement augmentée (H 1.05±0.02 vs. Ctrl 0.90±0.03 unité relative, +17%; p<0.05). Les femelles H (n=6) (vs Ctrl, n=6) de 16 semaines démontrent une augmentation significative de l’activité de l’aconitase (0.33±0.03 vs 0.17±0.02 μmoles/min/mg mitochondrie), de l’expression de l’ATP synthase sous unité β (H 0.73±0.02 vs. Ctrl 0.59±0.02 unité relative, +25%; p<0.05) et de l’expression de MnSOD (H 0.89±0.02 vs. Ctrl 0.74±0.03 unité relative, +20%; p<0.05) (superoxide dismutase mitochondriale, important antioxidant), tandis que l’expression de Prx3 est significativement réduite (H 1.1±0.07 vs. Ctrl 0.85±0.01 unité relative, -24%; p<0.05). À 4 semaines, les mâles H (vs Ctrl) présentent une augmentation significative de l’expression de Prx3 (H 0.72±0.03 vs. Ctrl 0.56±0.04 unité relative, +31%; p<0.05) et les femelles présentent une augmentation significative de l’expression d’UCP2 (H 1.22±0.05 vs. Ctrl 1.03±0.04 unité relative, +18%; p<0.05) et de l’expression de MnSOD (H 1.36±0.01 vs. 1.19±0.06 unité relative, +14%; p<0.05). Conclusions: Une exposition néonatale à l’O2 chez le rat adulte mène à des indices de dysfonction mitochondriale dans les reins adultes, associée à une augmentation dans la production d’espèces réactives de l’oxygène, suggérant que ces modifications mitochondriales pourraient jouer un rôle dans l’hypertension artérielle et d’un stress oxydant, et par conséquent, être un facteur possible dans la progression vers des maladies cardiovasculaires. Mots-clés: Mitochondries, Reins, Hypertension, Oxygène, Stress Oxydant, Programmation

Relevância:

20.00% 20.00%

Publicador:

Resumo:

La programmation linéaire en nombres entiers est une approche robuste qui permet de résoudre rapidement de grandes instances de problèmes d'optimisation discrète. Toutefois, les problèmes gagnent constamment en complexité et imposent parfois de fortes limites sur le temps de calcul. Il devient alors nécessaire de développer des méthodes spécialisées afin de résoudre approximativement ces problèmes, tout en calculant des bornes sur leurs valeurs optimales afin de prouver la qualité des solutions obtenues. Nous proposons d'explorer une approche de reformulation en nombres entiers guidée par la relaxation lagrangienne. Après l'identification d'une forte relaxation lagrangienne, un processus systématique permet d'obtenir une seconde formulation en nombres entiers. Cette reformulation, plus compacte que celle de Dantzig et Wolfe, comporte exactement les mêmes solutions entières que la formulation initiale, mais en améliore la borne linéaire: elle devient égale à la borne lagrangienne. L'approche de reformulation permet d'unifier et de généraliser des formulations et des méthodes de borne connues. De plus, elle offre une manière simple d'obtenir des reformulations de moins grandes tailles en contrepartie de bornes plus faibles. Ces reformulations demeurent de grandes tailles. C'est pourquoi nous décrivons aussi des méthodes spécialisées pour en résoudre les relaxations linéaires. Finalement, nous appliquons l'approche de reformulation à deux problèmes de localisation. Cela nous mène à de nouvelles formulations pour ces problèmes; certaines sont de très grandes tailles, mais nos méthodes de résolution spécialisées les rendent pratiques.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Problème: Ma thèse porte sur l’identité individuelle comme interrogation sur les enjeux personnels et sur ce qui constitue l’identification hybride à l’intérieur des notions concurrentielles en ce qui a trait à l’authenticité. Plus précisément, j’aborde le concept des identifications hybrides en tant que zones intermédiaires pour ce qui est de l’alternance de codes linguistiques et comme négociation des espaces continuels dans leur mouvement entre les cultures et les langues. Une telle négociation engendre des tensions et/ou apporte le lien créatif. Les tensions sont inhérentes à n’importe quelle construction d’identité où les lignes qui définissent des personnes ne sont pas spécifiques à une culture ou à une langue, où des notions de l’identité pure sont contestées et des codes communs de l’appartenance sont compromis. Le lien créatif se produit dans les exemples où l’alternance de code linguistique ou la négociation des espaces produit le mouvement ouvert et fluide entre les codes de concurrence des références et les différences à travers les discriminations raciales, la sexualité, la culture et la langue. Les travaux que j’ai sélectionnés représentent une section transversale de quelques auteurs migrants provenant de la minorité en Amérique du Nord qui alternent les codes linguistiques de cette manière. Les travaux détaillent le temps et l’espace dans leur traitement de l’identité et dans la façon dont ils cernent l’hybridité dans les textes suivants : The Woman Warrior de Maxine Hong Kingston (1975-76), Hunger of Memory de Richard Rodriguez (1982), Comment faire l’amour avec un nègre sans se fatiguer de Dany Laferrière (1985), Borderlands/La Frontera de Gloria Anzalduá (1987), Lost in Translation de Eva Hoffman (1989), Avril ou l’anti-passion de Antonio D’Alfonso (1990) et Chorus of Mushrooms de Hiromi Goto (1994). Enjeux/Questions La notion de l’identification hybride est provocante comme sujet. Elle met en question l’identité pure. C’est un sujet qui a suscité beaucoup de discussions tant en ce qui a trait à la littérature, à la politique, à la société, à la linguistique, aux communications, qu’au sein même des cercles philosophiques. Ce sujet est compliqué parce qu’il secoue la base des espaces fixes et structurés de l’identité dans sa signification culturelle et linguistique. Par exemple, la notion de patrie n’a pas les représentations exclusives du pays d’origine ou du pays d’accueil. De même, les notions de race, d’appartenance ethnique, et d’espaces sexuels sont parfois négativement acceptées si elles proviennent des codes socialement admis et normalisés de l’extérieur. De tels codes de la signification sont souvent définis par l’étiquette d’identification hétérosexuelle et blanche. Dans l’environnement généralisé d’aujourd’hui, plus que jamais, une personne doit négocier qui elle est, au sens de son appartenance à soi, en tant qu’individu et ce, face aux modèles locaux, régionaux, nationaux, voire même globaux de la subjectivité. Nous pouvons interpréter ce mouvement comme une série de couches superposées de la signification. Quand nous rencontrons une personne pour la première fois, nous ne voyons que la couche supérieure. D’ailleurs, son soi intérieur est caché par de nombreuses couches superposées (voir Joseph D. Straubhaar). Toutefois, sous cette couche supérieure, on retrouve beaucoup d’autres couches et tout comme pour un oignon, on doit les enlever une par une pour que l’individualité complète d’une personne soit révélée et comprise. Le noyau d’une personne représente un point de départ crucial pour opposer qui elle était à la façon dont elle se transforme sans cesse. Sa base, ou son noyau, dépend du moment, et comprend, mais ne s’y limite pas, ses origines, son environnement et ses expériences d’enfance, son éducation, sa notion de famille, et ses amitiés. De plus, les notions d’amour-propre et d’amour pour les autres, d’altruisme, sont aussi des points importants. Il y a une relation réciproque entre le soi et l’autre qui établit notre degré d’estime de soi. En raison de la mondialisation, notre façon de comprendre la culture, en fait, comment on consomme et définit la culture, devient rapidement un phénomène de déplacement. À l’intérieur de cette arène de culture généralisée, la façon dont les personnes sont à l’origine chinoises, mexicaines, italiennes, ou autres, et poursuivent leur évolution culturelle, se définit plus aussi facilement qu’avant. Approche Ainsi, ma thèse explore la subjectivité hybride comme position des tensions et/ou des relations créatrices entre les cultures et les langues. Quoique je ne souhaite aucunement simplifier ni le processus, ni les questions de l’auto-identification, il m’apparaît que la subjectivité hybride est aujourd’hui une réalité croissante dans l’arène généralisée de la culture. Ce processus d’échange est particulièrement complexe chez les populations migrantes en conflit avec leur désir de s’intégrer dans les nouveaux espaces adoptés, c’est-à-dire leur pays d’accueil. Ce réel désir d’appartenance peut entrer en conflit avec celui de garder les espaces originels de la culture définie par son pays d’origine. Ainsi, les références antérieures de l’identification d’une personne, les fondements de son individualité, son noyau, peuvent toujours ne pas correspondre à, ou bien fonctionner harmonieusement avec, les références extérieures et les couches d’identification changeantes, celles qu’elle s’approprie du pays d’accueil. Puisque nos politiques, nos religions et nos établissements d’enseignement proviennent des représentations nationales de la culture et de la communauté, le processus d’identification et la création de son individualité extérieure sont formées par le contact avec ces établissements. La façon dont une personne va chercher l’identification entre les espaces personnels et les espaces publics détermine ainsi le degré de conflit et/ou de lien créatif éprouvé entre les modes et les codes des espaces culturels et linguistiques. Par conséquent, l’identification des populations migrantes suggère que la « community and culture will represent both a hybridization of home and host cultures » (Straubhaar 27). Il y a beaucoup d’écrits au sujet de l’hybridité et des questions de l’identité et de la patrie, toutefois cette thèse aborde la valeur créative de l’alternance de codes culturels et linguistiques. Ce que la littérature indiquera Par conséquent, la plate-forme à partir de laquelle j’explore mon sujet de l’hybridité flotte entre l’interprétation postcoloniale de Homi Bhabha concernant le troisième espace hybride; le modèle d’hétéroglossie de Mikhail Bakhtine qui englobent plusieurs de mes exemples; la représentation de Roland Barthes sur l’identité comme espace transgressif qui est un modèle de référence et la contribution de Chantal Zabus sur le palimpseste et l’alternance de codes africains. J’utilise aussi le modèle de Sherry Simon portant sur l’espace urbain hybride de Montréal qui établit un lien important avec la valeur des échanges culturels et linguistiques, et les analyses de Janet Paterson. En effet, la façon dont elle traite la figure de l’Autre dans les modèles littéraires au Québec fournisse un aperçu régional et national de l’identification hybride. Enfin, l’exploration du bilinguisme de Doris Sommer comme espace esthétique et même humoristique d’identification situe l’hybridité dans une espace de rencontre créative. Conséquence Mon approche dans cette thèse ne prétend pas résoudre les problèmes qui peuvent résulter des plates-formes de la subjectivité hybride. Pour cette raison, j’évite d’aborder toute approche politique ou nationaliste de l’identité qui réfute l’identification hybride. De la même façon, je n’amène pas de discussion approfondie sur les questions postcoloniales. Le but de cette thèse est de démontrer à quel point la subjectivité hybride peut être une zone de relation créatrice lorsque l’alternance de codes permet des échanges de communication plus intimes entre les cultures et les langues. C’est un espace qui devient créateur parce qu’il favorise une attitude plus ouverte vis-à-vis les différents champs qui passent par la culture, aussi bien la langue, que la sexualité, la politique ou la religion. Les zones hybrides de l’identification nous permettent de contester les traditions dépassées, les coutumes, les modes de communication et la non-acceptation, toutes choses dépassées qui emprisonnent le désir et empêchent d’explorer et d’adopter des codes en dehors des normes et des modèles de la culture contenus dans le discours blanc, dominant, de l’appartenance culturelle et linguistique mondialisée. Ainsi, il appert que ces zones des relations multi-ethniques exigent plus d’attention des cercles scolaires puisque la population des centres urbains à travers l’Amérique du Nord devient de plus en plus nourrie par d’autres types de populations. Donc, il existe un besoin réel d’établir une communication sincère qui permettrait à la population de bien comprendre les populations adoptées. C’est une invitation à stimuler une relation plus intime de l’un avec l’autre. Toutefois, il est évident qu’une communication efficace à travers les frontières des codes linguistiques, culturels, sexuels, religieux et politiques exige une négociation continuelle. Mais une telle négociation peut stimuler la compréhension plus juste des différences (culturelle ou linguistique) si des institutions académiques offrent des programmes d’études intégrant davantage les littératures migrantes. Ma thèse vise à illustrer (par son choix littéraire) l’identification hybride comme une réalité importante dans les cultures généralisées qui croissent toujours aujourd’hui. Les espaces géographiques nous gardent éloignés les uns des autres, mais notre consommation de produits exotiques, qu’ils soient culturels ou non, et même notre consommation de l’autre, s’est rétrécie sensiblement depuis les deux dernières décennies et les indicateurs suggèrent que ce processus n’est pas une tendance, mais plutôt une nouvelle manière d’éprouver la vie et de connaître les autres. Ainsi les marqueurs qui forment nos frontières externes, aussi bien que ces marqueurs qui nous définissent de l’intérieur, exigent un examen minutieux de ces enjeux inter(trans)culturels, surtout si nous souhaitons nous en tenir avec succès à des langues et des codes culturels présents, tout en favorisant la diversité culturelle et linguistique. MOTS-CLÉS : identification hybride, mouvement ouvert, alternance de code linguistique, négociation des espaces, tensions, connectivité créative

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Cette thèse a pour but d’améliorer l’automatisation dans l’ingénierie dirigée par les modèles (MDE pour Model Driven Engineering). MDE est un paradigme qui promet de réduire la complexité du logiciel par l’utilisation intensive de modèles et des transformations automatiques entre modèles (TM). D’une façon simplifiée, dans la vision du MDE, les spécialistes utilisent plusieurs modèles pour représenter un logiciel, et ils produisent le code source en transformant automatiquement ces modèles. Conséquemment, l’automatisation est un facteur clé et un principe fondateur de MDE. En plus des TM, d’autres activités ont besoin d’automatisation, e.g. la définition des langages de modélisation et la migration de logiciels. Dans ce contexte, la contribution principale de cette thèse est de proposer une approche générale pour améliorer l’automatisation du MDE. Notre approche est basée sur la recherche méta-heuristique guidée par les exemples. Nous appliquons cette approche sur deux problèmes importants de MDE, (1) la transformation des modèles et (2) la définition précise de langages de modélisation. Pour le premier problème, nous distinguons entre la transformation dans le contexte de la migration et les transformations générales entre modèles. Dans le cas de la migration, nous proposons une méthode de regroupement logiciel (Software Clustering) basée sur une méta-heuristique guidée par des exemples de regroupement. De la même façon, pour les transformations générales, nous apprenons des transformations entre modèles en utilisant un algorithme de programmation génétique qui s’inspire des exemples des transformations passées. Pour la définition précise de langages de modélisation, nous proposons une méthode basée sur une recherche méta-heuristique, qui dérive des règles de bonne formation pour les méta-modèles, avec l’objectif de bien discriminer entre modèles valides et invalides. Les études empiriques que nous avons menées, montrent que les approches proposées obtiennent des bons résultats tant quantitatifs que qualitatifs. Ceux-ci nous permettent de conclure que l’amélioration de l’automatisation du MDE en utilisant des méthodes de recherche méta-heuristique et des exemples peut contribuer à l’adoption plus large de MDE dans l’industrie à là venir.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Ce mémoire a pour thèse que les fonctions devraient être transparentes lors de la phase de métaprogrammation. En effet, la métaprogrammation se veut une possibilité pour le programmeur d’étendre le compilateur. Or, dans un style de programmation fonctionnelle, la logique du programme se retrouve dans les définitions des diverses fonctions le composant. Puisque les fonctions sont généralement opaques, l’impossibilité d’accéder à cette logique limite les applications possibles de la phase de métaprogrammation. Nous allons illustrer les avantages que procurent les fonctions transparentes pour la métaprogrammation. Nous donnerons notamment l’exemple du calcul symbolique et un exemple de nouvelles optimisations désormais possibles. Nous illustrerons également que la transparence des fonctions permet de faire le pont entre les datatypes du programme et les fonctions. Nous allons également étudier ce qu'implique la présence de fonctions transparentes au sein d'un langage. Nous nous concentrerons sur les aspects reliés à l'implantation de ces dernières, aux performances et à la facilité d'utilisation. Nous illustrerons nos propos avec le langage Abitbol, un langage créé sur mesure pour la métaprogrammation.