Spelling suggestions: "subject:"compilateur"" "subject:"compilateurs""
1 |
Compilation statique de JavaBergeron, Étienne January 2002 (has links)
Mémoire numérisé par la Direction des bibliothèques de l'Université de Montréal.
|
2 |
A simplified Java, JXue, Xinjian January 2001 (has links)
Mémoire numérisé par la Direction des bibliothèques de l'Université de Montréal.
|
3 |
Sista : a metacircular architecture for runtime optimisation persistence / Sista : une architecture métacirculaire pour la persistance d'optimisation à la voléeBéra, Clément 15 September 2017 (has links)
La plupart des langages de programmation de haut niveau s'exécutent sur une machine virtuelle (VM) pour être indépendant du hardware utilisé. Pour atteindre de hautes performances, la VM repose généralement sur un compilateur à la volée (JIT), qui spécule sur le comportement du programme basé sur ses premières exécutions pour générer à la volée du code machine efficace et accélérer l'exécution du programme. Étant donné que plusieurs exécutions sont nécessaires pour spéculer correctement sur le comportement du programme, une telle VM nécessite un certain temps au démarrage pour atteindre les performances maximales. Le JIT est habituellement compilé en code exécutable avec le reste de la VM avant sa première utilisation. La thèse propose Sista, une architecture pour un JIT, dans laquelle l'état optimisé de la VM peut être persisté entre plusieurs démarrages de la VM et le JIT s'exécute dans le même environnement d'exécution que le programme exécuté. Pour ce faire, le JIT est divisé en deux parties. Une partie est de haut niveau: elle effectue des optimisations spécifiques au langage de programmation exécuté par la VM et est méta-circulaire. Sans connaissances des détails de bas niveau, cette partie peut être lue, éditée et déboguée pendant le fonctionnement du programme en utilisant les outils de développement du langage de programmation exécuté par la VM. La deuxième partie est de bas niveau: elle effectue des optimisations spécifiques au hardware utilisé et est compilée en code exécutable, au sein de la VM, avant sa première utilisation. Les deux parties du JIT utilisent une représentation intermédiaire bien définie pour échanger le code à optimiser. Cette représentation est indépendante du hardware utilisé et peut être persistée entre plusieurs démarrages de la VM, ce qui permet à la VM d'atteindre rapidement les performances maximales. Pour valider l'architecture, la thèse inclus la description d'une implémentation utilisant Pharo Smalltalk et sa VM. L'implémentation est évaluée par rapport à différents indices de performance, incluant l'exécution de programme utilisés en entreprise et de petits programmes utilisés pour mesurer la performance d'aspects spécifiques de la VM. Le JIT est implémenté selon l'architecture proposée et permet d'exécuter le programme jusqu'à 5x plus vite que la VM en production aujourd'hui. En outre, les indices de performance montrent que les performances maximales peuvent être atteintes presque immédiatement après le démarrage de la VM si cette dernière peut réutiliser l'état optimisé d'une autre exécution. / Most high-level programming languages run on top of a virtual machine (VM) to abstract away from the underlying hardware. To reach high-performance, the VM typically relies on an optimising just-in-time compiler (JIT), which speculates on the program behavior based on its first runs to generate at runtime efficient machine code and speed-up the program execution. As multiple runs are required to speculate correctly on the program behavior, such a VM requires a certain amount of time at start-up to reach peak performance. The optimising JIT itself is usually compiled ahead-of-time to executable code as part of the VM. The dissertation proposes Sista, an architecture for an optimising JIT, in which the optimised state of the VM can be persisted across multiple VM start-ups and the optimising JIT is running in the same runtime than the program executed. To do so, the optimising JIT is split in two parts. One part is high-level: it performs optimisations specific to the programming language run by the VM and is written in a metacircular style. Staying away from low-level details, this part can be read, edited and debugged while the program is running using the standard tool set of the programming language executed by the VM. The second part is low-level: it performs machine specific optimisations and is compiled ahead-of-time to executable code as part of the VM. The two parts of the JIT use a well-defined intermediate representation to share the code to optimise. This representation is machine-independent and can be persisted across multiple VM start-ups, allowing the VM to reach peak performance very quickly. To validate the architecture, the dissertation includes the description of an implementation on top of Pharo Smalltalk and its VM. The implementation is able to run a large set of benchmarks, from large application benchmarks provided by industrial users to micro-benchmarks used to measure the performance of specific code patterns. The optimising JIT is implemented according to the architecture proposed and shows significant speed-up (up to 5x) over the current production VM. In addition, large benchmarks show that peak performance can be reached almost immediately after VM start-up if the VM can reuse the optimised state persisted from another run.
|
4 |
La Charrue - pour une représentation des données dans l'interface homme-machineGauthier, Jean-François January 1999 (has links)
Mémoire numérisé par la Direction des bibliothèques de l'Université de Montréal.
|
5 |
Parallélisation automatique de programmes scientifiques pour systèmes distribuésOuellet, Félix-Antoine January 2016 (has links)
Avec l’avènement des processeurs multi-coeurs comme architecture standard pour
ordinateurs de tout acabit, de nouveaux défis s’offrent aux programmeurs voulant
mettre à profit toute cette nouvelle puissance de calcul qui leur est offerte. Malheureusement, la programmation parallèle, autant sur systèmes à mémoire partagée que sur systèmes à mémoire distribuée, demeure un défi de taille pour les développeurs de logiciels. Une solution intéressante à ce problème serait de rendre disponible un outil permettant d’automatiser le processus de parallélisation de programmes. C’est dans cette optique que s’inscrit le présent mémoire. Après deux essais infructueux, mais ayant permis d’explorer le domaine de la parallélisation automatique dirigée par le compilateur, l’outil Clang-MPI a été conçu pour répondre au besoin énoncé. Ainsi, cet outil prend en charge la parallélisation de programmes originellement séquentiels dans le but de produire des programmes visant les systèmes distribués. Son bon fonctionnement a été évalué en faisant appel aux bancs d’essai offerts par la suite Polybench et ses limites ont été explorées par une tentative de parallélisation automatique du processus d’entraînement d’un réseau de neurones.
|
6 |
Transformation automatique d'arbres syntaxiques avec SableCCAgbakpem, Komivi Kevin January 2006 (has links) (PDF)
Dans la partie frontale d'un compilateur, il est souvent usuel de transformer l'arbre syntaxique concret correspondant à la grammaire utilisée lors de l'analyse syntaxique en un arbre simplifié appelé arbre syntaxique abstrait qui retient uniquement l'essentiel des éléments de l'arbre syntaxique concret et qui par ailleurs est plus approprié pour les étapes ultérieures de la compilation. La réalisation d'une telle transformation avec les générateurs de compilateurs traditionnels peut nécessiter d'écrire une quantité considérable de code répétitif et très enclin aux erreurs dans la grammaire. Dans ce mémoire, nous introduisons un nouveau mécanisme pour spécifier des transformations d'un arbre syntaxique concret vers un arbre syntaxique abstrait durant l'analyse syntaxique. Doté d'une syntaxe intuitive, ce mécanisme permet la spécification de transformations ascendantes de manière efficace et déterministe. De plus, des vérifications effectuées sur ces transformations garantissent leur exactitude. Nous avons implanté ce mécanisme à l'intérieur de l'outil SableCC, un générateur de compilateurs. Le résultat est un outil capable de générer des analyseurs lexicaux et syntaxiques dans lesquelles sont enchâssées des actions de construction d'arbres syntaxiques et des classes utilitaires (incluant des visiteurs) à partir de simples spécifications grammaticales. ______________________________________________________________________________ MOTS-CLÉS DE L’AUTEUR : Arbre syntaxique concret, Arbre syntaxique abstrait, Générateur de compilateurs, Analyse syntaxique.
|
7 |
Étude et réalisation d'un producteur de code paramétrable par les descriptions des langages source et cible.Lebarbier, Daniel, January 1900 (has links)
Th. 3e cycle--Inform.--Rennes 1, 1979. N°: 585.
|
8 |
Conception de parties contrôles de circuits VLSI : application au coprocesseur arithmétique FELINZysman, Eytan 27 October 1988 (has links) (PDF)
Ce travail présente la conception de la partie contrôle du coprocesseur arithmétique Felin ( fonctions élémentaires intégrées). La démarche suivie repose sur des techniques garantissant les performances du circuit et menant à une génération automatique du dessin des masques. Une description structurée des algorithmes de Felin a permis de maitriser leur complexité. Cette structuration se traduit par une décomposition de la partie contrôlé en trois niveaux d'interprétation. Les trois niveaux sont réalisés à partir d'architectures microprogrammées (Rom et Pla). Selon les contraintes specifiques a chaque niveau, des optimisations fonctionnelles et topologiques ont été introduites, contribuant à l'amélioration des performances du circuit. La modélisation des solutions architecturales retenues, a mené au développement d'un "compilateur à la demande". Il est constitue d'outils générant algorithmiquement le dessin des masques des différents blocs et routages de la partie contrôlé
|
9 |
Contribution à l'étude des mécanismes de traduction des langages de programmation : application au traitement des structures définies dynamiquementTrilling, Laurent 01 December 1967 (has links) (PDF)
.
|
10 |
Précédence, analyse syntaxique et langages de programmationColmerauer, Alain 26 September 1967 (has links) (PDF)
.
|
Page generated in 0.0501 seconds