231 |
Construction de sous-systèmes utilisant une machine abstraite. Réalisation autour du noyau GEMAULaforgue, Pierre 01 February 1975 (has links) (PDF)
.
|
232 |
La compilation, un outil paradoxal de valorisation des films muets recyclés par Peter Delpeut et coproduits par le Nederlands Filmmuseum [1989-1999]Fernandez Escareño, Itzia Gabriela 27 April 2009 (has links) (PDF)
La recherche interroge la valorisation des archives du Nederlands Filmmuseum [NFM] à partir du travail de compilation du cinéaste Peter Delpeut. Ce corpus de dix films [1989-1999] se situe à cheval entre deux ambitions qui ne sont pas toujours compatibles, entre une volonté d'archiviste de rendre accessible des films muets [1895-1931] parfois de simples fragments, en restituant leur couleur, en créant une sonorisation et une quête artistique, plus personnel et liée à un cinéaste. Convoquant des sources audiovisuelles mais également écrites et orales, il s'agit d'abord de se demander comment le NFM en vient à produire ces compilations afin de mettre en valeur ses collections, de tracer l'histoire de cette cinémathèque et de suivre la trajectoire de Delpeut, en somme de comprendre la rencontre entre cet homme riche d'une expérience de recherche, de critique et de réalisation et une institution en plein bouleversement de sa philosophie dans les années 1990. Le questionnement s'oriente ensuite sur le processus de fabrication lui-même et de la façon dont fonctionnent ces compilations en vue de montrer comment elles sont prises en tension entre le sensoriel et l'analytique, étant au-delà et en deçà d'une stricte valorisation des films muets du NFM. La dernière partie interroge les usages des compilations, la manière dont elles sont liées à la politique de programmation du NFM, comment elles affectent la dynamique de l'institution et du cinéaste, mais aussi comment elles sortent du cadre de la cinémathèque, évaluant à chaque fois les apports et les limites en terme de transmission d'un patrimoine cinématographique.
|
233 |
Edition critique, traduction et commentaire du traité hippocratique des Prénotions de Cos / Critical edition, with french translation and commentary, of the Hippocratic treatise Coan PrognosesFerracci, Elsa 05 December 2009 (has links)
Les Prénotions de Cos sont l’un des traités du Corpus hippocratique. L’ouvrage, anonyme, qu’on peut dater des environs du dernier tiers du IVe siècle av. J.-C., se présente comme la réunion de 640 propositions, le plus souvent de style aphoristique, reprises pour plus de la moitié à des traités hippocratiques comme les Aphorismes, le Pronostic, le Prorrhétique I, les Epidémies, le groupe des Maladies I-II-III, ou encore Plaies de la tête. Le contenu de la compilation est exclusivement orienté vers le pronostic médical. Le traité n’a connu qu’une postérité limitée dans l’Antiquité, et n’a été transmis ni en syriaque, ni en arabe ; aucune traduction latine n’est connue avant celle de Calvus, en 1525, qui inaugure le retour des érudits vers les manuscrits transmettant le texte. L’introduction donne une présentation de l’ouvrage (titre, datation, lectorat supposé, rapports avec les autres œuvres du Corpus hippocratique, structure et procédés de composition, théories médicales exposées, style, histoire du traité, traditions directe et indirecte, éditions, dialecte). L’étude s’attache à mettre en évidence la fonction didactique du traité, fonction qui explique tant l’organisation générale que certaines spécificités formelles du texte. L’édition opère un retour systématique vers le manuscrit le plus ancien et le plus conservateur, le Parisinus graecus 2253 (A), et s’appuie également sur la tradition indirecte (traités hippocratiques qui constituent les sources du traité, et commentaires de Galien principalement). Le texte critique, présenté avec les Testimonia, est accompagné d’une traduction, d’un commentaire philologique, historique et médical, et d’annexes. / The Coan Prognoses are one of the treatises of the Hippocratic Corpus. The work is anonymous and can be dated from about the last third of the IVth century b.C. It is presented in the form of a collection of 640 propositions, most often written in a aphoristic style, that are for more than half of them taken from Hippocratic treatises like Aphorisms, Pronostic, Prorrhetic I, Epidemics, Diseases I-II-III, or On head wounds. The content of the compilation is exclusively devoted to the medical prognosis. The treatise had only a very limited tradition in the Antiquity, and was translated neither in Syriac nor in Arabic. Any latin translation is known before the Calvus translation (1525), which represents the starting point of the scholars return to the manuscripts which pass down the text. The introduction presents the work (title, datation, readership, relationships with the others Hippocratic treatises, structure and devices of composition, medical theories, style, history of the treatise, direct and indirect traditions, editions, dialect). The edition itself is mainly based on the more ancient and conservative manuscript, the Parisinus graecus 2253 (A), and also on the indirect tradition (Hippocratic treatises which represent the sources of the work, and Galenic commentaries). The Greek text, presented with the Testimonia, is accompanied by a French translation, by a philological, historical and medical commentary, and by appendix.
|
234 |
Étude de cas sur l’ajout de vecteurs d’enregistrements typés dans Gambit SchemeCérat, Benjamin 08 1900 (has links)
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. / In order to optimize the in memory representation of Scheme records in the Gambit compiler, we introduce a type annotation system on record fields. We also introduce flat vector of records containing an abbreviated representation of those records. These vectors omit the header and reference to the type descriptor on contained records and use a type tree spanning the whole memory to recover the type as needed from an internal pointer.
The implementation of the new functionnalities is done through changes in the Gambit runtime. We add new primitives to the language and modify the existing architecture to correctly handle the new data types in a way transparent that is transparent to the user. To do so, we modify the garbage collector to account to account for the existance of internal references and of heterogenous records whose fields may not be alligned to a word and need not be boxed. We also have to automatically and systematically update hte type tree to reflect the live vectors.
To asses our implementation’s performance, we run a serie of benchmarks. We measure significant gains on allocation time and space with both typed records and contained records. We also measure a minor overhead in access costs on typed fields and major loss on accesses to the type descriptor of contained records.
|
235 |
Abitbol : un langage sur mesure pour la métaprogrammationArchambault-Bouffard, Vincent 04 1900 (has links)
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. / Our main thesis is that functions should be transparent during the metaprogramming stage. Metaprogramming is intended as a possibility for the programmer to extend the compiler. But in a functional programming style, the program logic is found in the definition of its functions. Since functions are generally opaque, it is impossible for the programmer to access this information and this limits the metaprogramming possibilities.
We will illustrate the benefits of transparent functions for metaprogramming. We will give the example of symbolic computation and also show new forms of optimizations now available at the metaprogramming stage. We will also illustrate that transparency allows us to bridge the gap between the datatypes of a program and its functions.
We will also examine how transparent functions affects other aspects of the language. We will focus on how to implement them, their performance impact and their ease of use.
We illustrate our thesis with Abitbol, a language designed for metaprogramming.
|
236 |
On the fly type specialization without type analysisChevalier-Boisvert, Maxime 12 1900 (has links)
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. / Dynamically typed programming languages such as JavaScript and Python defer type checking to run time. In order to maximize performance, dynamic language virtual
machine implementations must attempt to eliminate redundant dynamic type checks. This is typically done using type inference analysis. However, type inference analyses
are often costly and involve tradeoffs between compilation time and resulting precision. This has lead to the creation of increasingly complex multi-tiered VM architectures.
We introduce lazy basic block versioning, a simple just-in-time compilation technique which effectively removes redundant type checks from critical code paths. This
novel approach lazily generates type-specialized versions of basic blocks on the fly while propagating context-dependent type information. This does not require the use of costly
program analyses, is not restricted by the precision limitations of traditional type analyses and avoids the implementation complexity of speculative optimization techniques.
Three extensions are made to the basic block versioning technique in order to give it interprocedural optimization capabilities. Typed object shapes give it the ability to
attach type information to object properties and global variables. Entry point specialization allows it to pass type information from callers to callees, and call continuation
specialization makes it possible to pass return value type information back to callers without dynamic overhead. We empirically demonstrate that these extensions enable
basic block versioning to exceed the capabilities of static whole-program type analyses.
|
237 |
Compilation efficace d'applications de traitement d'images pour processeurs manycore / Efficient Compilation of Image Processing Applications for Manycore ProcessorsGuillou, Pierre 30 November 2016 (has links)
Nous assistons à une explosion du nombre d’appareils mobiles équipés de capteurs optiques : smartphones, tablettes, drones... préfigurent un Internet des objets imminent. De nouvelles applications de traitement d’images (filtres, compression, réalité augmentée) exploitent ces capteurs mais doivent répondre à des contraintes fortes de vitesse et d’efficacité énergétique. Les architectures modernes — processeurs manycore, GPUs,... — offrent un potentiel de performance, avec cependant une hausse sensible de la complexité de programmation.L’ambition de cette thèse est de vérifier l’adéquation entre le domaine du traitement d’images et ces architectures modernes : concilier programmabilité, portabilité et performance reste encore aujourd’hui un défi. Le domaine du traitement d’images présente un fort parallélisme intrinsèque, qui peut potentiellement être exploité par les différents niveaux de parallélisme offerts par les architectures actuelles. Nous nous focalisons ici sur le domaine du traitement d’images par morphologie mathématique, et validons notre approche avec l’architecture manycore du processeur MPPA de la société Kalray.Nous prouvons d’abord la faisabilité de chaînes de compilation intégrées, composées de compilateurs, bibliothèques et d’environnements d’exécution, qui à partir de langages de haut niveau tirent parti de différents accélérateurs matériels. Nous nous concentrons plus particulièrement sur les processeurs manycore, suivant les différents modèles de programmation : OpenMP ; langage flot de données ; OpenCL ; passage de messages. Trois chaînes de compilation sur quatre ont été réalisées, et sont accessibles à des applications écrites dans des langages spécifiques au domaine du traitement d’images intégrés à Python ou C. Elles améliorent grandement la portabilité de ces applications, désormais exécutables sur un plus large panel d’architectures cibles.Ces chaînes de compilation nous ont ensuite permis de réaliser des expériences comparatives sur un jeu de sept applications de traitement d’images. Nous montrons que le processeur MPPA est en moyenne plus efficace énergétiquement qu’un ensemble d’accélérateurs matériels concurrents, et ceci particulièrement avec le modèle de programmation flot de données. Nous montrons que la compilation d’un langage spécifique intégré à Python vers un langage spécifique intégré à C permet d’augmenter la portabilité et d’améliorer les performances des applications écrites en Python.Nos chaînes de compilation forment enfin un environnement logiciel complet dédié au développement d’applications de traitement d’images par morphologie mathématique, capable de cibler efficacement différentes architectures matérielles, dont le processeur MPPA, et proposant des interfaces dans des langages de haut niveau. / Many mobile devices now integrate optic sensors; smartphones, tablets, drones... are foreshadowing an impending Internet of Things (IoT). New image processing applications (filters, compression, augmented reality) are taking advantage of these sensors under strong constraints of speed and energy efficiency. Modern architectures, such as manycore processors or GPUs, offer good performance, but are hard to program.This thesis aims at checking the adequacy between the image processing domain and these modern architectures: conciliating programmability, portability and performance is still a challenge today. Typical image processing applications feature strong, inherent parallelism, which can potentially be exploited by the various levels of hardware parallelism inside current architectures. We focus here on image processing based on mathematical morphology, and validate our approach using the manycore architecture of the Kalray MPPA processor.We first prove that integrated compilation chains, composed of compilers, libraries and run-time systems, allow to take advantage of various hardware accelerators from high-level languages. We especially focus on manycore processors, through various programming models: OpenMP, data-flow language, OpenCL, and message passing. Three out of four compilation chains have been developed, and are available to applications written in domain-specific languages (DSL) embedded in C or Python. They greatly improve the portability of applications, which can now be executed on a large panel of target architectures.Then, these compilation chains have allowed us to perform comparative experiments on a set of seven image processing applications. We show that the MPPA processor is on average more energy-efficient than competing hardware accelerators, especially with the data-flow programming model. We show that compiling a DSL embedded in Python to a DSL embedded in C increases both the portability and the performance of Python-written applications.Thus, our compilation chains form a complete software environment dedicated to image processing application development. This environment is able to efficiently target several hardware architectures, among them the MPPA processor, and offers interfaces in high-level languages.
|
238 |
L'énergie chevaleresque : étude de la matière textuelle et iconographique du manuscrit BnF fr.340 (compilation de Rusticien de Pise et Guiron le courtois)Pourquery De Boisserin, Juliette 18 December 2009 (has links) (PDF)
Guiron le courtois, vaste roman de chevalerie en prose composé du Roman de Meliadus et du Roman de Guiron a été copié, remanié, compilé dans de nombreux manuscrits depuis sa création, entre 1235-1240, jusqu'à la fin du Moyen Âge. Sa matière ouverte à toutes les continuations en fait une œuvre aux contours flous. Le manuscrit BnF fr. 340 (fin XIVe-début XVe siècle), associant le Roman de Meliadus et la Compilation de Rusticien de Pise, forme un ensemble où se dessine la chevalerie errante des pères des grands héros arthuriens, animée par la violence des combats, l'abondance du sang versé, mais aussi par la joie des rencontres et de la parole échangée. C'est cette communauté vivante que cette thèse entreprend d'analyser, à travers l'exploration conjointe du texte et de l'image du manuscrit BnF fr. 340, dont l'analyse iconographique sera ouverte à d'autres programmes de manuscrits de la même période
|
239 |
Gestion d'objets persistants : du langage de programmation au systèmeDechamboux, Pascal 03 February 1993 (has links) (PDF)
Cette these decrit la definition et la mise en oeuvre dun langage de programmation pour bases de donnees : le langage a objets Peplom (PErsistent Programming Language for Object Management). Lapproche adoptee a pour but doffrir une su^rete importante du langage, une implementation efficace et de la flexibilite pour le schema des definitions (types, modules, etc...). Le langage propose nest pas totalement nouveau puisquil est syntaxiquement base sur le langage C/C++ ce qui lui confere une conformite avec les standards. La these presente dans un premier temps un etat de lart en deux parties. La premiere partie sattache a etudier les systemes de types sous langle des modeles de memoire necessaires a leur implantation. La deuxieme partie analyse les SGBD a objets existants et les compare suivant un certain nombre de criteres. Le langage Peplom est ensuite decrit en insistant surtout sur leffort dintegration de concepts. Un typage fort et lintroduction orthogonale des concepts bases de donnees dans le langage de programmation lui confere une grande su^rete. Par ailleurs, Peplom apporte une solution interessante au probleme de structuration des programmes qui seffectue a deux niveaux : les types abstraits structurent les definitions des entites modelisees alors que les modules structurent les donnees manipulees. La production de programmes avec le langage Peplom seffectue en deux phases. La premiere phase consiste a saisir les definitions composant lapplication. Celles-ci sont memorisees de maniere incrementale dans un dictionnaire gere par le compilateur. Le dictionnaire autorise les incoherences transitoires de la description des programmes, offrant ainsi une grande flexibilite pour le programmeur et une bonne base pour levolution de schemas. La deuxieme phase realise la generation dapplications executables. Le generateur produit du code supportant le modele structurel et semantique des donnees. Il sappuie sur la couche systeme consistant simplement en un gestionnaire de memoire (persistante et temporaire). Les performances du prototype implante sont comparables a celles des systemes C++ persistants offrant moins de fonctionnalites.
|
240 |
Étude d'une stratégie d'autotest intégré pour le compilateur de silicium SYCOTorki, Kholdoun 12 July 1990 (has links) (PDF)
Bien que les techniques d'autotest intégré soient en perpétuel développement sous forme de théories et de schémas de conception, leur réalisation concrète et leur implémentation posent des problèmes cruciaux. Une stratégie d'autotest intégré est proposée dans cette thèse pour des circuits générés par compilation de silicium. Le schéma UBIST d'unification du test en-ligne et hors-ligne assure la plupart des tests nécessaires durant la vie d'un circuit intégré (test de fin de fabrication, test de maintenance, test en-ligne,...). A la base du schéma ubist se trouve le schéma self-checking (test en-ligne, pour lequel le circuit est compose de blocs fonctionnels strongly fault secure (sfs) et de contrôleurs strongly code disjoint (scd). Le but a atteindre par de tels circuits est couramment appelé le totally self-checking goal, qui consiste a détecter la première erreur survenant aux sorties du bloc fonctionnel, sous forme d'indication d'erreur sur les sorties du contrôleur. Autour de ce schéma self-checking est implémentée une structure de test, du type bilbo, assurant des phases de test hors-ligne, qui a pour objectif d'augmenter le taux de couverture des pannes multiples et de renforcer les propriétés SFS et SCD pour certains blocs fonctionnels et contrôleurs. L'unification des tests en-ligne et hors-ligne permet de tirer les avantages de chacun de ces tests, permettant une implémentation efficace d'autotest intégré. Une méthodologie de conception pour implémenter ce schéma UBIST est proposée pour des parties contrôle hiérarchiques a base de plas et des parties operatives parallèles en structure bit-slice (du type de celle du mc 68000). Ce sont les architectures cibles utilisées par le compilateur de silicium SYCO (développé au sein de l'équipe d'architecture des ordinateurs du laboratoire TIM3/IMAG). Une solution topologique efficace est proposée pour ces schémas UBIST
|
Page generated in 0.1112 seconds