19 resultados para Program analysis techniques
Resumo:
La compréhension des objets dans les programmes orientés objet est une tâche impor- tante à la compréhension du code. JavaScript (JS) est un langage orienté-objet dyna- mique, et son dynamisme rend la compréhension du code source très difficile. Dans ce mémoire, nous nous intéressons à l’analyse des objets pour les programmes JS. Notre approche construit de façon automatique un graphe d’objets inspiré du diagramme de classes d’UML à partir d’une exécution concrète d’un programme JS. Le graphe résul- tant montre la structure des objets ainsi que les interactions entre eux. Notre approche utilise une transformation du code source afin de produire cette in- formation au cours de l’exécution. Cette transformation permet de recueillir de l’infor- mation complète au sujet des objets crées ainsi que d’intercepter toutes les modifications de ces objets. À partir de cette information, nous appliquons plusieurs abstractions qui visent à produire une représentation des objets plus compacte et intuitive. Cette approche est implémentée dans l’outil JSTI. Afin d’évaluer l’utilité de l’approche, nous avons mesuré sa performance ainsi que le degré de réduction dû aux abstractions. Nous avons utilisé les dix programmes de réfé- rence de V8 pour cette comparaison. Les résultats montrent que JSTI est assez efficace pour être utilisé en pratique, avec un ralentissement moyen de 14x. De plus, pour 9 des 10 programmes, les graphes sont suffisamment compacts pour être visualisés. Nous avons aussi validé l’approche de façon qualitative en inspectant manuellement les graphes gé- nérés. Ces graphes correspondent généralement très bien au résultat attendu. Mots clés: Analyse de programmes, analyse dynamique, JavaScript, profilage.
Resumo:
Les traits quantitatifs complexes sont des caractéristiques mesurables d’organismes vivants qui résultent de l’interaction entre plusieurs gènes et facteurs environnementaux. Les locus génétiques liés à un caractère complexe sont appelés «locus de traits quantitatifs » (QTL). Récemment, en considérant les niveaux d’expression tissulaire de milliers de gènes comme des traits quantitatifs, il est devenu possible de détecter des «QTLs d’expression» (eQTL). Alors que ces derniers ont été considérés comme des phénotypes intermédiaires permettant de mieux comprendre l’architecture biologique des traits complexes, la majorité des études visent encore à identifier une mutation causale dans un seul gène. Cette approche ne peut remporter du succès que dans les situations où le gène incriminé a un effet majeur sur le trait complexe, et ne permet donc pas d’élucider les situations où les traits complexes résultent d’interactions entre divers gènes. Cette thèse propose une approche plus globale pour : 1) tenir compte des multiples interactions possibles entre gènes pour la détection de eQTLs et 2) considérer comment des polymorphismes affectant l’expression de plusieurs gènes au sein de groupes de co-expression pourraient contribuer à des caractères quantitatifs complexes. Nos contributions sont les suivantes : Nous avons développé un outil informatique utilisant des méthodes d’analyse multivariées pour détecter des eQTLs et avons montré que cet outil augmente la sensibilité de détection d’une classe particulière de eQTLs. Sur la base d’analyses de données d’expression de gènes dans des tissus de souris recombinantes consanguines, nous avons montré que certains polymorphismes peuvent affecter l’expression de plusieurs gènes au sein de domaines géniques de co-expression. En combinant des études de détection de eQTLs avec des techniques d’analyse de réseaux de co-expression de gènes dans des souches de souris recombinantes consanguines, nous avons montré qu’un locus génétique pouvait être lié à la fois à l’expression de plusieurs gènes au niveau d’un domaine génique de co-expression et à un trait complexe particulier (c.-à-d. la masse du ventricule cardiaque gauche). Au total, nos études nous ont permis de détecter plusieurs mécanismes par lesquels des polymorphismes génétiques peuvent être liés à l’expression de plusieurs gènes, ces derniers pouvant eux-mêmes être liés à des traits quantitatifs complexes.
Resumo:
Problématique : De par les fonctions qu’elles exercent à différentes étapes du continuum de soins, les infirmières jouent un rôle de premier plan dans l’offre des services de santé. La qualité des services repose en grande partie sur du personnel infirmier motivé, judicieusement déployé et travaillant dans des conditions qui permettent d’optimiser leur expérience de travail. Cependant, différentes études suggèrent que les modalités actuelles d’organisation du travail ne permettent pas toujours de créer des conditions et des environnements susceptibles d’optimiser le travail des infirmières et leur qualité de vie au travail (Institute of Medicine, 2001; Hickam & al., 2003; Shojania, Duncan, McDonald, & Wachter, 2001). Une meilleure compréhension des conceptions et préférences des infirmières est utile pour guider les actions dans les milieux de soins visant à améliorer l’organisation du travail infirmier. Objectifs : Cette recherche qualitative descriptive a pour but d’explorer les conceptions et préférences des infirmières par rapport aux modalités d’organisation de leur travail pouvant améliorer leur qualité de vie au travail, dans un contexte de centre hospitalier et plus spécifiquement, dans une unité de médecine. Méthodologie : Des entrevues semi-dirigées ont été effectuées auprès de huit infirmières. La technique d’analyse de contenu a été utilisée pour analyser les résultats de l’étude. Le modèle conceptuel de l’organisation du travail de Filion-Côté qui a été utilisé s’oriente autour des processus de soins, la dotation en personnel et l’environnement de travail. Résultats : Cette étude a établi que les conceptions de l’organisation du travail partagées par les infirmières touchent deux principales dimensions soit la définition des rôles et la répartition des tâches ainsi que l’organisation du travail en temps que modes de coordination du travail et d’interaction entre les membres de l’équipe de travail. Cette analyse a aussi démontré que les principales préférences des infirmières sont exprimées à propos des éléments ayant trait à la disponibilité adéquate du personnel nécessaire à l’exécution des différentes tâches, le soutien du supérieur immédiat, le soutien de l’administration au développement professionnel et de la pratique ainsi que l’aménagement des conditions matérielles de travail. On peut aussi constater que plusieurs préférences exprimées par les infirmières donnent écho à leurs conceptions de l’organisation du travail. Conclusion : Cette étude a permis de comprendre les conceptions et les préférences des infirmières par rapport à l’organisation de leur travail. Elle aura ainsi permis d’identifier plusieurs modalités sur lesquels les gestionnaires peuvent agir pour développer des projets d’organisation du travail, soit la dotation en personnels des milieux des soins, le soutien des équipes, la communication et l’aménagement de l’environnement physique des soins. De plus, les infirmières ont elles-mêmes un rôle à jouer pour modifier positivement leur milieu de travail et peuvent influencer plusieurs de ces modalités.
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.