15 resultados para Programming languages (Electronic computers) - Semantics
em Université de Montréal, Canada
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.
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.
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.
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.
Resumo:
La version intégrale de ce mémoire est disponible uniquement pour consultation individuelle à la Bibliothèque de musique de l’Université de Montréal (www.bib.umontreal.ca/MU).
Resumo:
Cette thèse constitue une étude systématique du lexique du déné sųłiné, une langue athabaskane du nord-ouest canadien. Elle présente les définitions et les patrons de combinatoire syntaxique et lexicale de plus de 200 unités lexicales, lexèmes et phrasèmes, qui représentent une partie importante du vocabulaire déné sųłiné dans sept domaines: les émotions, le caractère humain, la description physique des entités, le mouvement des êtres vivants, la position des entités, les conditions atmospheriques et les formations topologiques, en les comparant avec le vocubulaire équivalent de l'anglais. L’approche théorique choisie est la Théorie Sens-Texte (TST), une approche formelle qui met l’accent sur la description sémantique et lexicographique empiriques. La présente recherche relève d'importantes différences entre le lexique du déné sųłiné et celui de l'anglais à tous les niveaux: dans la correspondence entre la représentation conceptuelle, considérée (quasi-)extralinguistique, et la structure sémantique; dans les patrons de lexicalisation des unités lexicales, et dans les patrons de combinatoire syntaxique et lexicale, qui montrent parfois des traits propres au déné sųłiné intéressants.
Resumo:
L’annotation en rôles sémantiques est une tâche qui permet d’attribuer des étiquettes de rôles telles que Agent, Patient, Instrument, Lieu, Destination etc. aux différents participants actants ou circonstants (arguments ou adjoints) d’une lexie prédicative. Cette tâche nécessite des ressources lexicales riches ou des corpus importants contenant des phrases annotées manuellement par des linguistes sur lesquels peuvent s’appuyer certaines approches d’automatisation (statistiques ou apprentissage machine). Les travaux antérieurs dans ce domaine ont porté essentiellement sur la langue anglaise qui dispose de ressources riches, telles que PropBank, VerbNet et FrameNet, qui ont servi à alimenter les systèmes d’annotation automatisés. L’annotation dans d’autres langues, pour lesquelles on ne dispose pas d’un corpus annoté manuellement, repose souvent sur le FrameNet anglais. Une ressource telle que FrameNet de l’anglais est plus que nécessaire pour les systèmes d’annotation automatisé et l’annotation manuelle de milliers de phrases par des linguistes est une tâche fastidieuse et exigeante en temps. Nous avons proposé dans cette thèse un système automatique pour aider les linguistes dans cette tâche qui pourraient alors se limiter à la validation des annotations proposées par le système. Dans notre travail, nous ne considérons que les verbes qui sont plus susceptibles que les noms d’être accompagnés par des actants réalisés dans les phrases. Ces verbes concernent les termes de spécialité d’informatique et d’Internet (ex. accéder, configurer, naviguer, télécharger) dont la structure actancielle est enrichie manuellement par des rôles sémantiques. La structure actancielle des lexies verbales est décrite selon les principes de la Lexicologie Explicative et Combinatoire, LEC de Mel’čuk et fait appel partiellement (en ce qui concerne les rôles sémantiques) à la notion de Frame Element tel que décrit dans la théorie Frame Semantics (FS) de Fillmore. Ces deux théories ont ceci de commun qu’elles mènent toutes les deux à la construction de dictionnaires différents de ceux issus des approches traditionnelles. Les lexies verbales d’informatique et d’Internet qui ont été annotées manuellement dans plusieurs contextes constituent notre corpus spécialisé. Notre système qui attribue automatiquement des rôles sémantiques aux actants est basé sur des règles ou classificateurs entraînés sur plus de 2300 contextes. Nous sommes limités à une liste de rôles restreinte car certains rôles dans notre corpus n’ont pas assez d’exemples annotés manuellement. Dans notre système, nous n’avons traité que les rôles Patient, Agent et Destination dont le nombre d’exemple est supérieur à 300. Nous avons crée une classe que nous avons nommé Autre où nous avons rassemblé les autres rôles dont le nombre d’exemples annotés est inférieur à 100. Nous avons subdivisé la tâche d’annotation en sous-tâches : identifier les participants actants et circonstants et attribuer des rôles sémantiques uniquement aux actants qui contribuent au sens de la lexie verbale. Nous avons soumis les phrases de notre corpus à l’analyseur syntaxique Syntex afin d’extraire les informations syntaxiques qui décrivent les différents participants d’une lexie verbale dans une phrase. Ces informations ont servi de traits (features) dans notre modèle d’apprentissage. Nous avons proposé deux techniques pour l’identification des participants : une technique à base de règles où nous avons extrait une trentaine de règles et une autre technique basée sur l’apprentissage machine. Ces mêmes techniques ont été utilisées pour la tâche de distinguer les actants des circonstants. Nous avons proposé pour la tâche d’attribuer des rôles sémantiques aux actants, une méthode de partitionnement (clustering) semi supervisé des instances que nous avons comparée à la méthode de classification de rôles sémantiques. Nous avons utilisé CHAMÉLÉON, un algorithme hiérarchique ascendant.
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.
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.
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
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.
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
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.
Resumo:
Les systèmes logiciels sont devenus de plus en plus répondus et importants dans notre société. Ainsi, il y a un besoin constant de logiciels de haute qualité. Pour améliorer la qualité de logiciels, l’une des techniques les plus utilisées est le refactoring qui sert à améliorer la structure d'un programme tout en préservant son comportement externe. Le refactoring promet, s'il est appliqué convenablement, à améliorer la compréhensibilité, la maintenabilité et l'extensibilité du logiciel tout en améliorant la productivité des programmeurs. En général, le refactoring pourra s’appliquer au niveau de spécification, conception ou code. Cette thèse porte sur l'automatisation de processus de recommandation de refactoring, au niveau code, s’appliquant en deux étapes principales: 1) la détection des fragments de code qui devraient être améliorés (e.g., les défauts de conception), et 2) l'identification des solutions de refactoring à appliquer. Pour la première étape, nous traduisons des régularités qui peuvent être trouvés dans des exemples de défauts de conception. Nous utilisons un algorithme génétique pour générer automatiquement des règles de détection à partir des exemples de défauts. Pour la deuxième étape, nous introduisons une approche se basant sur une recherche heuristique. Le processus consiste à trouver la séquence optimale d'opérations de refactoring permettant d'améliorer la qualité du logiciel en minimisant le nombre de défauts tout en priorisant les instances les plus critiques. De plus, nous explorons d'autres objectifs à optimiser: le nombre de changements requis pour appliquer la solution de refactoring, la préservation de la sémantique, et la consistance avec l’historique de changements. Ainsi, réduire le nombre de changements permets de garder autant que possible avec la conception initiale. La préservation de la sémantique assure que le programme restructuré est sémantiquement cohérent. De plus, nous utilisons l'historique de changement pour suggérer de nouveaux refactorings dans des contextes similaires. En outre, nous introduisons une approche multi-objective pour améliorer les attributs de qualité du logiciel (la flexibilité, la maintenabilité, etc.), fixer les « mauvaises » pratiques de conception (défauts de conception), tout en introduisant les « bonnes » pratiques de conception (patrons de conception).
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.