24 resultados para Compilation
Resumo:
Ce travail porte sur la construction d’un corpus étalon pour l’évaluation automatisée des extracteurs de termes. Ces programmes informatiques, conçus pour extraire automatiquement les termes contenus dans un corpus, sont utilisés dans différentes applications, telles que la terminographie, la traduction, la recherche d’information, l’indexation, etc. Ainsi, leur évaluation doit être faite en fonction d’une application précise. Une façon d’évaluer les extracteurs consiste à annoter toutes les occurrences des termes dans un corpus, ce qui nécessite un protocole de repérage et de découpage des unités terminologiques. À notre connaissance, il n’existe pas de corpus annoté bien documenté pour l’évaluation des extracteurs. Ce travail vise à construire un tel corpus et à décrire les problèmes qui doivent être abordés pour y parvenir. Le corpus étalon que nous proposons est un corpus entièrement annoté, construit en fonction d’une application précise, à savoir la compilation d’un dictionnaire spécialisé de la mécanique automobile. Ce corpus rend compte de la variété des réalisations des termes en contexte. Les termes sont sélectionnés en fonction de critères précis liés à l’application, ainsi qu’à certaines propriétés formelles, linguistiques et conceptuelles des termes et des variantes terminologiques. Pour évaluer un extracteur au moyen de ce corpus, il suffit d’extraire toutes les unités terminologiques du corpus et de comparer, au moyen de métriques, cette liste à la sortie de l’extracteur. On peut aussi créer une liste de référence sur mesure en extrayant des sous-ensembles de termes en fonction de différents critères. Ce travail permet une évaluation automatique des extracteurs qui tient compte du rôle de l’application. Cette évaluation étant reproductible, elle peut servir non seulement à mesurer la qualité d’un extracteur, mais à comparer différents extracteurs et à améliorer les techniques d’extraction.
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:
La version intégrale de cette thèse est disponible uniquement pour consultation individuelle à la Bibliothèque de musique de l’Université de Montréal (www.bib.umontreal.ca/MU).
Resumo:
"La publication simultanée est un paradigme nouveau de diffusion dans Internet. Au lieu de privilégier l'aspect visuel d'une page, la famille de technologies RSS permet de communiquer la structure d'un site, en vue d'une navigation plus systématique et rapide. À l'instar du foisonnement qui caractérisait la bulle Internet du tournant du millénaire, plusieurs saveurs de cette technologie furent développées en parallèle par différents groupes. L'acronyme RSS reflète cette compétition et désigne, successivement, Rich Site Summary (RSS 0.91); RDF Site Summary (RSS 0.9 and 1.0) ainsi que Really Simple Syndication (RSS 2.0). Par ailleurs, Atom 1.0 représente un format RSS entériné par les organes de standardisation d'Internet. Sont présentés les mécanismes de publication et de compilation de fils RSS."
Resumo:
L’observation de l’exécution d’applications JavaScript est habituellement réalisée en instrumentant une machine virtuelle (MV) industrielle ou en effectuant une traduction source-à-source ad hoc et complexe. Ce mémoire présente une alternative basée sur la superposition de machines virtuelles. Notre approche consiste à faire une traduction source-à-source d’un programme pendant son exécution pour exposer ses opérations de bas niveau au travers d’un modèle objet flexible. Ces opérations de bas niveau peuvent ensuite être redéfinies pendant l’exécution pour pouvoir en faire l’observation. Pour limiter la pénalité en performance introduite, notre approche exploite les opérations rapides originales de la MV sous-jacente, lorsque cela est possible, et applique les techniques de compilation à-la-volée dans la MV superposée. Notre implémentation, Photon, est en moyenne 19% plus rapide qu’un interprète moderne, et entre 19× et 56× plus lente en moyenne que les compilateurs à-la-volée utilisés dans les navigateurs web populaires. Ce mémoire montre donc que la superposition de machines virtuelles est une technique alternative compétitive à la modification d’un interprète moderne pour JavaScript lorsqu’appliqué à l’observation à l’exécution des opérations sur les objets et des appels de fonction.
Resumo:
Dans le but d’optimiser la représentation en mémoire des enregistrements Scheme dans le compilateur Gambit, nous avons introduit dans celui-ci un système d’annotations de type et des vecteurs contenant une représentation abrégée des enregistrements. Ces derniers omettent la référence vers le descripteur de type et l’entête habituellement présents sur chaque enregistrement et utilisent plutôt un arbre de typage couvrant toute la mémoire pour retrouver le vecteur contenant une référence. L’implémentation de ces nouvelles fonctionnalités se fait par le biais de changements au runtime de Gambit. Nous introduisons de nouvelles primitives au langage et modifions l’architecture existante pour gérer correctement les nouveaux types de données. On doit modifier le garbage collector pour prendre en compte des enregistrements contenants des valeurs hétérogènes à alignements irréguliers, et l’existence de références contenues dans d’autres objets. La gestion de l’arbre de typage doit aussi être faite automatiquement. Nous conduisons ensuite une série de tests de performance visant à déterminer si des gains sont possibles avec ces nouvelles primitives. On constate une amélioration majeure de performance au niveau de l’allocation et du comportement du gc pour les enregistrements typés de grande taille et des vecteurs d’enregistrements typés ou non. De légers surcoûts sont toutefois encourus lors des accès aux champs et, dans le cas des vecteurs d’enregistrements, au descripteur de type.
Resumo:
Ce texte a été présenté à la table ronde « Contested Footage: Snuff, Disease, the Avant-Garde, and the Archive » lors du congrès annuel de la PCA/ACA (Popular Culture Association/American Culture Association) qui se tenait à la Nouvelle-Orléans, du 1er au 4 avril 2015. La participation à ce congrès s’inscrivait dans le cadre du projet de recherche « Archives et création : nouvelles perspectives sur l’archivistique » sous la direction d’Yvon Lemay. Ce projet est financée par le Conseil de recherches en sciences humaines du Canada (CRSH) dans le cadre du programme Savoir (2013-2016).
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.
Resumo:
Les ARN non codants (ARNnc) sont des transcrits d'ARN qui ne sont pas traduits en protéines et qui pourtant ont des fonctions clés et variées dans la cellule telles que la régulation des gènes, la transcription et la traduction. Parmi les nombreuses catégories d'ARNnc qui ont été découvertes, on trouve des ARN bien connus tels que les ARN ribosomiques (ARNr), les ARN de transfert (ARNt), les snoARN et les microARN (miARN). Les fonctions des ARNnc sont étroitement liées à leurs structures d’où l’importance de développer des outils de prédiction de structure et des méthodes de recherche de nouveaux ARNnc. Les progrès technologiques ont mis à la disposition des chercheurs des informations abondantes sur les séquences d'ARN. Ces informations sont accessibles dans des bases de données telles que Rfam, qui fournit des alignements et des informations structurelles sur de nombreuses familles d'ARNnc. Dans ce travail, nous avons récupéré toutes les séquences des structures secondaires annotées dans Rfam, telles que les boucles en épingle à cheveux, les boucles internes, les renflements « bulge », etc. dans toutes les familles d'ARNnc. Une base de données locale, RNAstem, a été créée pour faciliter la manipulation et la compilation des données sur les motifs de structure secondaire. Nous avons analysé toutes les boucles terminales et internes ainsi que les « bulges » et nous avons calculé un score d’abondance qui nous a permis d’étudier la fréquence de ces motifs. Tout en minimisant le biais de la surreprésentation de certaines classes d’ARN telles que l’ARN ribosomal, l’analyse des scores a permis de caractériser les motifs rares pour chacune des catégories d’ARN en plus de confirmer des motifs communs comme les boucles de type GNRA ou UNCG. Nous avons identifié des motifs abondants qui n’ont pas été étudiés auparavant tels que la « tetraloop » UUUU. En analysant le contenu de ces motifs en nucléotides, nous avons remarqué que ces régions simples brins contiennent beaucoup plus de nucléotides A et U. Enfin, nous avons exploré la possibilité d’utiliser ces scores pour la conception d’un filtre qui permettrait d’accélérer la recherche de nouveaux ARN non-codants. Nous avons développé un système de scores, RNAscore, qui permet d’évaluer un ARN en se basant sur son contenu en motifs et nous avons testé son applicabilité avec différents types de contrôles.