Spelling suggestions: "subject:"interpréter"" "subject:"d'interpréter""
1 |
Système dynamique d'inclusion partielle des méthodes dans l'interpréteur de la machine virtuelle Java SablevmVézina, Sébastien January 2008 (has links) (PDF)
La compilation de codee source vers du code octet combiné avec l'utilisation d'une machine virtuelle ou d'un interpréteur pour l'exécuter est devenue une pratique courante qui permet de conserver une indépendance face à la plateforme matérielle. Les interpréteurs sont portables et offrent une simplicité de développement qui en font un choix intéressant pour la conception de prototypes de nouveaux langages de programmation. L'optimisation des techniques d'interprétation existantes est un sujet de recherche qui nous intéresse particulièrement. Nous avons voulu, par l'entremise de notre projet de recherche, étudier jusqu'où il est possible de pousser l'optimisation dans un interpréteur. Après avoir étudié les types d'interpréteurs existants, nous avons constaté que les interpréteurs les plus performants se basent tous sur le même principe: La réduction du coût associé aux répartitions entre les instructions interprétées. Ce coût est causé par les instructions de répartitions elles-mêmes, mais surtout par l'augmentation du taux d'erreur qu'elles procurent dans les prédicteurs de branchement qui se trouvent au sein des processeurs modernes. Des mauvaises prédictions de branchements occasionnent des coûts importants sur une architecture pipelinée. L'interpréteur linéaire inclusif est un des plus performants qui existe. En nous basant sur cet interpréteur, nous avons fait la conception et l'implémentation d'un mécanisme qui lui permet d'augmenter la longueur des ses super-instructions et par le fait même de diminuer le nombre de répartitions pendant l'exécution. Nous avons mis au point un mécanisme dynamique d'inclusion partielle des méthodes dans cet interpréteur. Nous avons aussi conçu un système de profilage qui nous permet de détecter les sites d'invocations chauds et d'y effectuer l'inclusion du chemin le plus fréquenté de la méthode appelée. En brisant ainsi la frontière entre le corps des méthodes, nous parvenons à augmenter la longueur moyenne des super-instructions. Nous avons surmonté et résolu toutes les difficultés inhérentes à l'implémentation d'un tel système dans une véritable machine virtuelle Java (synchronisation, exceptions, présence d'un nettoyeur de mémoire, présence de sous routines dans le code octet Java). Nous fournissons une étude empirique de l'impact de notre système sur un interpréteur linéaire inclusif en exécutant des applications Java d'envergure. Dans tous les cas étudiés, on arrive à augmenter la longueur moyenne des super-instructions invoquées et à diminuer le nombre de répartitions pendant l'exécution. ______________________________________________________________________________ MOTS-CLÉS DE L’AUTEUR : Interpréteur, Inclusion, Inclusion partielle, Profilage, Machine virtuelle, Java, JVM, SableVM.
|
2 |
Optimisation d'un compilateur incrémental et conversationnel de PL/IBruandet, Marie-Françoise 02 July 1976 (has links) (PDF)
.
|
3 |
Hiber, un langage pour décrire les règles de génération de code dans SableCCCoderre, David January 2007 (has links) (PDF)
SableCC est un générateur de compilateurs. Il permet de construire des analyseurs lexicaux, des analyseurs syntaxiques et des arbres syntaxiques. Il est toutefois limité à la génération de code en langage Java. Dans ce mémoire, nous présentons un outil qui s'intègre à SableCC et qui permet à celui-ci une génération de code dans d'autres langages orientés objets. La méthode que nous proposons pour permettre la génération de code dans un autre langage consiste à construire des scripts et des patrons pour chaque nouveau langage. La rédaction des scripts se fait dans le langage Hiber, un langage que nous avons conçu pour faciliter la tâche de décrire les règles de génération de code. Les scripts sont interprétés par un interpréteur construit avec SableCC. Cet interpréteur reçoit de SableCC une structure de données qui est accessible à partir de scripts. Le principe original de SableCC pour la génération de code est donc conservé. Pour vérifier le bon fonctionnement de l'interpréteur et de la structure de données, nous avons effectué la génération en Java avec notre méthode et nous avons comparé le code généré avec celui de la version originale de SableCC. Par la suite, nous avons ajouté la génération en C++. C'est un langage ayant des similitudes avec Java. Cet exercice nous a permis de raffiner l'interpréteur et la structure de données. Dans le but de démontrer une plus grande maturité de la génération, un troisième langage est ajouté: Python. Ce langage est très différent des deux derniers, ce qui démontre l'adéquation de notre méthode de génération pour les langages orientés objets. La méthode de génération proposée permet de bien séparer les modèles de génération, les règles de génération et la structure de données. Elle rend possible l'ajout d'un nouveau langage destination en écrivant un script qui est peu volumineux, facile à lire et à maintenir. ______________________________________________________________________________ MOTS-CLÉS DE L’AUTEUR : Générateur de compilateur, Interpréteur, Structure de données, Hiber, Script.
|
4 |
Etude fonctionnelle d'un processeur de bases de données hiérarchiquesBerger Sabbatel, Gilles 22 June 1978 (has links) (PDF)
Conception de systèmes ou les processeurs seraient spécialisés. Un système ne serait plus constitué d'un processeur central effectuant la plus grande part du travail, avec l'existence d'organes périphériques effectuant des taches beaucoup plus humbles, mais de plusieurs processeurs spécialises auxquels seraient confiées des parties différentes du traitement, constituant des ressources système.
|
5 |
Un interpréteur extensible pour le prototypage des langages d'aspectsAssaf, Ali 21 October 2011 (has links) (PDF)
L'intérêt de l'utilisation de différents langages d'aspects pour faire face à une variété de préoccupations transverses dans le développement de systèmes logiciels complexes est reconnu. Il faudrait être capable d'utiliser plusieurs de ces langages dans un seul logiciel donné. Cependant, d'une part la phase de développement d'un nouveau langage dédié capturant tous les patrons de programmation du domaine prend beaucoup de temps et, d'autre part, le concepteur doit gérer les interactions avec les autres langages quand ils sont utilisés simultanément. <br/> Dans cette thèse, nous introduisons un support pour le prototypage rapide et la composition des langages d'aspects, basé sur des interpréteurs. Nous partons d'un interpréteur d'un sous-ensemble de Java en étudiant et en définissant son extension modulaire afin de supporter la programmation par aspects en se basant sur une sémantique d'aspects partagée. Dans l'interpréteur d'aspects, nous avons implémenté des mécanismes communs aux langages d'aspects en laissant des trous à définir pour implémenter des langages d'aspects concrets. La puissance de cette approche est de permettre d'implémenter directement les langages à partir de leur sémantique. L'approche est validée par l'implémentation d'une version légère d'AspectJ. <br/> Pour appliquer la même approche et la même architecture à Java sans modifier son interpréteur (JVM), nous réutilisons AspectJ pour effectuer une première étape de tissage statique, qui est complétée par une deuxième étape de tissage dynamique, implémentée par une mince couche d'interprétation. C'est un exemple montrant l'intérêt qu'il peut y avoir à concilier interprétation et compilation. Des prototypes pour AspectJ, EAOP, COOL et des langages dédiés simples, valident notre approche. Nous montrons le caractère ouvert de notre implémentation d'AspectJ en décrivant deux extensions: la première permet l'ordonnancement dynamique des aspects, la deuxième propose des sémantiques alternatives pour les points de coupe. Les langages d'aspects implémentés avec notre approche peuvent être facilement composés. En outre, cette composition peut être personnalisée.
|
6 |
SSH : un outil et des techniques simples à implémenter pour construire et simuler des modèles hiérarchisés de systèmesRohmer, Jean 24 June 1976 (has links) (PDF)
Partant des concepts de la théorie des systèmes hiérarchises, on définit un langage et son interpréteur permettant de décrire formellement et d'expérimenter des systèmes à architecture hiérarchisée. On introduit des dispositifs évolués de simulation du temps et on montre que les notions de hiérarchie apportent une dimension nouvelle aux langages et techniques de simulation.
|
7 |
Mise au point interactive de programmes dans un atelier de génie logicielLenne, Christian 30 May 1985 (has links) (PDF)
Cette thése présente différents types de metteurs au point, puis elle essaie d'apporter une solution à ce problème en présentant le metteur au point PASCAL réalisé au sein de l'environnement de programmation ADELE. Pour cela, elle décrit l'interpréteur réalisé dans le cadre de ce projet; cet interpréteur travaille sur une représentation interne de l'arbre abstrait des programmes. Nous montrons ensuite comment est exploité cet outil pour réaliser les différentes fonctions de mise au point offertes à l'utilisateur
|
8 |
Conception et réalisation d'un logiciel graphique de base indépendant de son contexte : application au logiciel GRIGRILeduc-Leballeur, André 30 September 1977 (has links) (PDF)
Indépendance d'un logiciel graphique par rapport à son contexte d'utilisation. Conception et réalisation d'un logiciel graphique basé sur le concept de "console virtuelle". La première génération de GRIGRI. La conception du logiciel GRIGRI. La réalisation du logiciel GRIGRI. Etude des deux types d'interpréteurs. Directives pour l'insertion du logiciel dans un contexte quelconque
|
9 |
Système et langage portable pour le traitement des application répartiesNguyen, Xuan Dang 09 March 1978 (has links) (PDF)
ON propose un modèle de machine réseau logique. Définition d'un ensemble de fonction et de mécanisme élémentaires qui aident à la répartition dans l'exécution des programmes d'une application réseau.
|
10 |
Machine PASC-HLL : définition d'une architecture pipe-line pour une unité centrale adaptée au langage PASCALSchoellkopf, Jean-Pierre 28 June 1977 (has links) (PDF)
Présentation d'une conception nouvelle des systèmes d'exploitation. Description du système PASC-HLL
|
Page generated in 0.0778 seconds