Spelling suggestions: "subject:"langage à objets"" "subject:"tangage à objets""
1 |
L'interface native de Nit, un langage de programmation à objetsLaferrière, Alexis 03 1900 (has links) (PDF)
L'interface native permet à un logiciel de profiter des avantages des langages natifs ainsi que de ceux du langage de haut niveau. Elle intervient entre les différents langages pour permettre les appels de méthodes et la conversion des données. Son utilisation amène cependant généralement une perte de sûreté à l'exécution du logiciel et son emploi est souvent complexe. Dans le cadre de cette recherche, nous développons l'interface native du langage de programmation à objets Nit. Notre recherche vise à résoudre au mieux les problèmes soulevés par l'utilisation d'une interface native, et ce, par une analyse rigoureuse des différents détails de conception d'une interface. Notre intention est donc de concevoir, selon des objectifs précis, l'interface native idéale pour le langage Nit. Pour mettre à l'épreuve notre proposition, nous avons conçu et implémenté l'interface native du compilateur Nit. La conception de cette interface native s'appuie donc sur des objectifs que nous considérons garants d'une interface native de qualité. Ces objectifs consistent à préserver la sûreté d'exécution du logiciel, maintenir une connaissance du flot d'appels, utiliser le langage Nit de façon expressive et selon ses forces, conserver une syntaxe naturelle en C ainsi qu'offrir une interface native versatile et d'utilisation rapide par tout autre moyen. Pour atteindre ces objectifs, nous proposons quatre grandes approches clés : la forme des modules hybrides pour gérer la coexistence de deux langages; une déclaration explicite des appels de méthodes réalisées depuis le langage C pour conserver la connaissance du flot d'appels; une représentation symétrique des types et méthodes Nit en C pour en permettre une utilisation naturelle et vérifiée statiquement; les classes natives qui représentent les types C en Nit et leur appliquent les forces du paradigme de programmation à objets, dont le polymorphisme. Enfin, pour valider l'interface native proposée et implémentée, nous présentons comment nous avons utilisé cette interface pour réaliser des modules et des logiciels Nit. Nous démontrons également que cette interface peut être utilisée dans le développement d'autres interfaces spécialisées en fonction de besoins spécifiques.
______________________________________________________________________________
MOTS-CLÉS DE L’AUTEUR : interface native, interface de fonctions étrangères, compilation, langages de programmation à objets
|
2 |
Une machine virtuelle en héritage multiple basée sur le hachage parfait / A virtual machine with multiple inheritance, based on perfect hashingPagès, Julien 14 December 2016 (has links)
Cette thèse traite des langages à objets en héritage multiple et typage statique exécutés avec des machines virtuelles. Des analogies sont à faire avec Java bien que ce langage ne soit pas en héritage multiple.Une machine virtuelle est un système d'exécution d'un programme qui se différencie des classiques compilateurs et interpréteurs par une caractéristique fondamentale : le chargement dynamique. Les classes sont alors découvertes au fil de l'exécution.Le but de la thèse est d'étudier et de spécifier une machine virtuelle pour un langage à objets en héritage multiple, pour ensuite spécifier et implémenter des protocoles de compilation/recompilation. Ces derniers devront mettre en place les optimisations et les inévitables mécanismes de réparations associés.Nous présenterons d'abord l'architecture et les choix réalisés pour implémenter la machine virtuelle : ceux-ci utilisent le langage Nit en tant que langage source ainsi que le hachage parfait, une technique d'implémentation de l'héritage multiple.Ensuite nous présenterons les spécifications pour implémenter des protocoles de compilation/recompilation ainsi que les expérimentations associées.Dans ce cadre, nous avons présenté une extension des analyses de préexistence et de types concrets, pour augmenter les opportunités d'optimisations sans risque. Cette contribution dépasse la problématique de l'héritage multiple. / This thesis is about object-oriented languages in multiple inheritance and static typing executed by virtual machines.We are in the context of a Java-like language and system but in multiple inheritance.A virtual machine is an execution system which is different from static compilers and interpreters since they are in dynamic loading.This characteristic makes classes to be discovered during the execution.The thesis' goal is to study, specify and implement a virtual machine for an object-oriented language in multiple inheritance and then in a second step to specify and implement compilation/recompilation protocols.These protocols are in charge of optimizations and unavoidable repairing.We will present the architecture of the virtual machine : the used language is Nit, and perfect hashing as the multiple inheritance implementation technique. Then we will present the protocols and the experiments.In this thesis, we have presented an extension of preexistence and concrete types analysis to increase optimization opportunities. This contribution is not limited to multiple inheritance object-oriented languages.
|
3 |
Exceptions dans les langages à objetsLacourte, Serge 11 July 1991 (has links) (PDF)
Dans les langages de programmation une exception apparait comme conséquence des limites qu'une mise en oeuvre introduit par rapport à un modèle idéal. Les structures de controle traditionnelles ne conviennent pas pour traiter ces cas limites, et sont secondées dans certains langages par un système spécifique de gestion des exceptions qui sépare le traitement des exceptions de l'algorithme principal. Nous analysons dans le contexte plus précis des langages à objets la forme que doit prendre un tel système et les contraintes qu'il doit satisfaire. Nous regardons en particulier les implications de la modularité, de l'héritage et de la conformité. Nous proposons ensuite un système de gestion des exceptions pour le langage Guide, langage à objets conçu pour la constructions d'applications réparties. Nous proposons des solutions aux problèmes de la cohérence des objets et de la concurrence. Ce travail a donné lieu à une mise en oeuvre sur le système Guide.
|
4 |
Traduction et optimisation globale dans les langages de classesZendra, Olivier 30 October 2000 (has links) (PDF)
Ce travail s'inscrit dans le cadre des recherches menées autour de la compilation des langages de classes, notamment Eiffel, et plus généralement des langages à objets à typage statique. Très brièvement, on peut dire que le but de cette thèse revient à tenter de répondre à une question fondamentale: comment mieux compiler les langages à objets, c'est à dire comment avoir des programmes plus rapides et plus sûrs ? Ce travail de recherche est basé en grande partie sur l'analyse statique, abordée via deux axes principaux. Le premier consiste à pouvoir effectuer des contrôles de validité et de cohérence du programme, et ce non seulement sur les programmes finis, mais bien dès le début du développement, de façon à pouvoir assister au maximum les développeurs durant la phase de conception et d'implantation. Le second axe, qui est la substance même de cette thèse, considère l'utilisation des informations apportées par l'analyse statique du système pour améliorer la qualité du code généré. En effet, ces informations offrent des possibilités importantes en terme d'optimisation du code généré, aussi bien par des optimisations liées aux algorithmes que par des optimisations sur les structures de données. Nous proposons et expérimentons une approche basée sur la duplication et la spécialisation du code par analyse globale du système, afin d'implanter de façon efficace les structures de données et le code du programme compilé, notamment en ce qui concerne la liaison dynamique. Nous introduisons ainsi une nouvelle méthode de liaison dynamique, basée sur des arbres de branchement directs, dont les performances sont supérieures ou égales à celles des systèmes actuels classiques à base de tables d'indirection. Cette approche est également étendue à la génération par le compilateur d'un ramasse-miettes automatiquement adapté à l'application compilée. Nous menons aussi certaines études pour évaluer les optimisations permises par l'utilisation massive de l'aliasing dans un compilateur écrit dans un langage de classes, ainsi que des moyens de mieux maîtriser cette technique. Ces travaux sont validés entre autres par le développement d'un compilateur Eiffel nommé SmallEiffel et de ses bibliothèques, qui, très largement diffusés et utilisés, sont devenus The GNU Eiffel Compiler.
|
5 |
Le silence dans le théâtre de Samuel Beckett / The silence in the theater of Samuel BeckettDali, Jihane 19 December 2017 (has links)
La place du silence est fondamentale dans le théâtre de Samuel Beckett. Touché par les horreurs d’Auschwitz, le dramaturge ne cesse de présenter des personnages au seuil de la mort et qui ont le sentiment que la communication est difficile, parfois vaine, et que pourtant il leur faut continuer à parler. Malgré son invisibilité, son caractère fluctuant et fuyant, le silence reste signifiant, ouvrant un espace vierge qui se remplit alors de sens. Protéiforme, le silence est ambivalent. La faillite du langage verbal entraîne le recours à d’autres langages. La présence des objets scéniques, le spectacle des gestes et de la danse, le jeu de l’ombre et de la lumière ont le rôle de pallier l’absence d’action et la désarticulation de la parole. Se taire chez Beckett devient un jeu scénique purement visuel. Le dramaturge dépasse toutes les limites pour mettre en scène un silence qui est à la fois le matériau et l’objet du jeu théâtral. / The place of silence is fundamental in the theater of Samuel Beckett. Touched by the horrors of Auschwitz, the playwright continues to present characters on the threshold of death and they have the feeling that communication is difficult, sometimes vain, and yet they must keep talking. Despite its invisibility, its fluctuating and fleeing character, the silence remains meaningful, opening a virgin space which then fills with meaning. Protean, the silence is ambivalent. The use of verbal language bankruptcy to other languages. The presence of scenic objects, the show of gestures and dance, the play of shadow and light have the role to compensate for the lack of action and the disarticulation of the word. Shut up at Beckett becomes a purely visual stage play. The playwright exceeds all limits for staging a silence as both the material and the object of the theatrical game.
|
Page generated in 0.0567 seconds