Spelling suggestions: "subject:"langages"" "subject:"raingages""
121 |
Programmation Web TypéeCanou, Benjamin 04 October 2011 (has links) (PDF)
Le but de cet thèse est de contribuer à rendre la programmation Web plus flexible et plus sûre qu'elle ne l'est avec les solutions répandues actuellement. Pour ceci, nous proposons une solution dans la lignée de la famille de langages ML, qui laisse un maximum de liberté au programmeur de part son côté multi-paradigmes, tout en offrant un degré de sûreté important grâce au typage statique. Dans une première partie, nous montrons qu'il est possible de programmer le navigateur sans se plier au style de JavaScript. Notre solution est OBrowser, une implantation en JavaScript de la machine virtuelle OCaml. L'implantation prend en charge l'ensemble du langage OCaml et de sa bibliothèque, y compris le modèle de concurrence préemptif. Nous présentons de plus un mécanisme d'inter-opérabilité entre les couches objet de JavaScript et d'OCaml, permettant d'utiliser de façon bien typée l'environnement du navigateur avec les objets d'OCaml. Dans une seconde partie, nous fournissons une API de manipulation du document plus sûre et de plus haut niveau que le DOM des navigateurs. En particulier, nous cherchons à éliminer les déplacements implicites effectués par le DOM pour maintenir la forme d'arbre, qui limitent les possibilités de typage statique. Nous donnons d'abord fDOM, un modèle formel minimal similaire au DOM. Puis nous proposons cDOM, un modèle alternatif ou les déplacements sont remplacés par des copies. Nous décrivons ensuite FidoML, un langage basé sur ML, permettant les manipulations bien typées du document grâce à l'utilisation de cDOM. Dans toute cette partie, nous faisons attention à ce que les solutions données soient aussi adaptables que possible. Dans une troisième partie, nous montrons comment les travaux, jusqu'ici principalement pré- sentés dans le cadre du navigateur, s'appliquent à un contexte multi-tiers. Nous donnons d'abord un tour d'horizon des plates-formes multi-tiers proches issues de la recherche. Nous décrivons en particulier les solutions qu'elles apportent à un ensemble de problématiques spécifiques à la pro- grammation Web. Puis nous concluons en présentant les grandes lignes d'un langage multi-tiers mettant à profit les travaux des deux premières parties dans les solutions à ces différentes problé- matiques.
|
122 |
Analyses Statiques pour Manipulations de Données Structurées HiérarchiquementSchmitt, Alan 23 May 2011 (has links) (PDF)
Selon le Larousse, un programme informatique est un "ensemble d'instructions et de données représentant un algorithme et susceptible d'être exécuté par un ordinateur." Une forte adéquation entre instructions et données est donc nécessaire afin d'éviter tout dysfonctionnement d'un programme. Nous nous sommes ainsi intéressés ces dernières années aux analyses statiques, réalisées avant l'exécution du programme, permettant de garantir que la manipulation des données se passera correctement. Nous illustrerons nos recherches sur ce thème en considérant trois grandes familles de données: les arbres non ordonnés, les arbres ordonnés (dont XML), et les programmes eux-mêmes en tant que données. Dans chacun de ces domaines, nous avons conçu des analyses statiques, sous forme de système de types ou de bisimulations, adaptés à plusieurs problématiques telles que la manipulation de messages dans un système à composants, les langages bidirectionnels, la manipulation de XML ou les calculs de processus d'ordre supérieur avec passivation.
|
123 |
Automates infinis, logiques et langagesCarayol, Arnaud 08 December 2006 (has links) (PDF)
Cette thèse s'inscrit dans l'étude des graphes infinis de présentation finie. Nous nous intéressons à la fois à leurs propriétés logiques et aux langages qui leur sont associés. Nous nous concentrons sur l'étude des graphes infinis associés aux automates à pile d'ordre supérieur. Notre première contribution est la définition d'une notion de rationalité pour les piles d'ordre supérieur. Nous montrons que cette notion partage de nombreuses propriétés de la rationalité sur les mots : clôture par complémentaire, accepteurs déterministes et complets, et caractérisation en logique du second ordre monadique. Nous établissons un lien étroit entre les automates à pile d'ordre supérieur et les ensembles rationnels de piles d'ordre supérieur. Notre seconde contribution est l'étude structurelle des graphes associés à ces automates. Nous en donnons différentes caractérisations qui montrent la robustesse de ces familles de graphes infinis.
|
124 |
Prototypage rapide d'applications parallèles de vision artificielle par squelettes fonctionnelsGinhac, Dominique 25 January 1999 (has links) (PDF)
Les travaux présentés dans ce mémoire s'inscrivent dans la problématique dite d'adéquation algorithme architecture. Ils concernent la conception et le développement d'outils logiciels permettant de faire du prototypage rapide d'applications parallèles de vision artificielle sur des architectures de type MIMD à mémoire distribuée. De tels outils ont pour objectif de faciliter l'évaluation rapide d'un ensemble de solutions vis à vis d'un problème donné en diminuant de manière drastique les temps de cycle conception-implantation-validation des applications. L'outil SKiPPER développé dans le cadre de ces travaux est basé sur le concept des squelettes de parallélisation. Ceux-ci représentent des constructeurs génériques de haut niveau encapsulant des formes communes de parallélisme tout en dissimulant les détails relatifs à l'exploitation de ce parallélisme sur la plate-forme cible. Au niveau langage, la spécification des squelettes est réalisée au sein du langage fonctionnel Caml sous la forme de fonctions d'ordre supérieur. Ainsi, la spécification d'une application est un programme purement fonctionnel dans lequel l'expression du parallélisme est limitée au choix et à l'instanciation des squelettes choisis dans une base pré-définie. L'environnement de développement SKiPPER est organisé autour de trois modules réalisant respectivement l'expansion du code fonctionnel en un graphe flot de données (outil Dromadaire), le placement-ordonnancement de ce graphe sur l'architecture matérielle (outil SynDEx développé à l'INRIA) et la génération de code cible final pour l'architecture cible (la machine Transvision du LASMEA dans notre cas). L'applicabilité des concepts mis en \oe uvre dans SKiPPER et des outils développés conjointement est démontrée également dans les travaux présentés dans ce mémoire. Diverses applications de complexité réaliste (étiquetage en composantes connexes, détection et suivi de signalisation horizontale autoroutière) ont été parallélisées automatiquement par l'environnement SKiPPER validant ainsi l'objectif initial de prototypage rapide d'applications parallèles de vision artificielle à fortes contraintes temporelles sur architecture dédiée.
|
125 |
Le calcul de réécritureCirstea, Horatiu 07 October 2010 (has links) (PDF)
Le manuscrit présente une partie des travaux de recherche que j'ai effectués au cours des dix dernières années. Je me suis focalisé en particulier sur la présentation du calcul de réécriture comme un formalisme théorique permettant de donner la sémantique dynamique et statique de toute une famille de langages basés sur le filtrage, les règles et les stratégies de réécriture. Je présente le calcul de réécriture général ainsi que plusieurs instances et extensions, en mettant l'accent sur l'expressivité et sur les propriétés de ces calculs. Je montre en particulier que l'intégration uniforme des mécanismes de bases de la réécriture et du lambda-calcul permet une définition précise du processus de réécriture sous des stratégies ainsi que des encodages, typés ou non, de différents formalismes similaires. Je présente dans ce manuscrit des systèmes de types développés dans l'optique d'un formalisme théorique pour le typage dans des langages de programmation à base de règles et je ne discute que brièvement les systèmes de types dépendants étudiés dans une perspective logique. Le filtrage et l'application de substitutions obtenues comme résultat sont des opérations réalisées au niveau méta du calcul de réécriture mais une version explicite permet leur manipulation modulaire et efficace au niveau objet du calcul. Cette version explicite du calcul est étendue avec des structure de graphe permettant de représenter explicitement le partage et les cycles. Je propose également un formalisme général permettant d'exprimer différents calculs à motif et une méthodologie qui met en évidence les points clés permettant d'obtenir la confluence de ces calculs.
|
126 |
Stratégies Efficaces et Modèles d'Implantation pour les Langages Fonctionnels.Sinot, François-Régis 19 September 2006 (has links) (PDF)
Dans les langages fonctionnels, l'efficacité dépend crucialement du choix de la stratégie d'évaluation et d'un modèle d'implantation adapté. Nous développons d'abord un λ-calcul avec substitutions explicites qui évite les problèmes habituels liés à la substitution et à l'α-conversion, dans lequel on peut définir les stratégies usuelles, mais aussi des stratégies avec un meilleur partage de calcul. Ensuite, nous développons un modèle d'implantation efficace pour ce calcul. Pour cela, nous proposons une représentation innnovante des variables libres, d'abord dans le cadre très général de la récriture d'ordre supérieur, puis avec plus de détails dans notre cas particulier. Nous obtenons ainsi un λ-calcul avec substitutions explicites sans noms ni indices, dans lequel les te! rmes sont annotés avec de l'information qui indique comment les substitutions doivent être propagées, et qui constitue un modèle d'implantation efficace pour nos stratégies. Des machines abstraites sont alors définies, implantées et comparées expérimentalement aux meilleurs évaluateurs connus. Finalement, nous étudions les relations entre machines abstraites traditionnelles et réseaux d'interaction, deux modèles d'implantation courants mais très différents. Plus précisément, nous montrons comment certaines stratégies peuvent être implantées dans les réseaux d'interaction d'une façon très naturelle, rapprochant ainsi deux modèles utilisés pour l'implantation de stratégies efficaces.
|
127 |
Calcul d'objet asynchrone : confluence et déterminismeHenrio, Ludovic 28 November 2003 (has links) (PDF)
L'objectif de cette thèse est de concevoir un calcul d'objets permettant d'écrire des applications parallèles et distribuées, en particulier dans un cadre à grande échelle, tout en assurant de bonnes propriétés. Le calcul proposé s'intitule ASP : Asynchronous Sequential Processes. Les principales caractéristiques de ce calcul sont : des communications asynchrones, la présence de futurs et une exécution séquentielle dans chacun des processus. Ce calcul exhibe de fortes propriétés de confluence et de déterminisme. Cette thèse a donc aussi pour objectif de prouver de telles propriétés dans un cadre aussi général que possible. ASP est basé sur une répartition des objets en différentes activités disjointes. Une activité est un ensemble d'objets gérés par un unique processus. Les objets actifs sont des objets accessibles par des références globales/distantes. Ils communiquent à travers des appels de méthodes asynchrones avec un mécanisme de futurs. Un futur est une référence globale désignant un résultat qui n'est pas encore calculé. Cette thèse modélise ces différents aspects, leurs principales propriétés et les conséquences de ces mécanismes sur la notion de comportement déterministe des programmes. Le résultat principal consiste en une propriété de confluence et son application à l'identification d'un ensemble de programmes se comportant de façon déterministe. Du point de vue pratique, ASP peut aussi être considéré comme une modélisation de la librairie ProActive. Cette librairie fournit des outils pour développer des applications parallèles et distribuées en Java.
|
128 |
Analyse statique modulaire des langages à objet.Logozzo, Francesco 15 June 2004 (has links) (PDF)
Dans la thèse nous présentons un cadre pour l'analyse statique de langages orientés objets qui tient compte des propriétés de modularité de ces langages. Il y a plusieurs défis à relever pour obtenir une analyse statique efficace de langages orientés objet. Tout d'abord, elle doit gérer les particularités de ces langages telles que l'héritage, le polymorphisme et la résolution de méthodes virtuelles. Deuxièmement, elle doit être modulaire. En fait, les programmes orientés objet typiques sont fait de plusieurs milliers de classes et une analyse monolithique du programmes complet peut être trop coûteuse pour être pratiquée. Troisièmement, la technologie orientée objet favorise la programmation par composants, en cela qu'un composant (une classe) est développée une fois pour toute et utilisée dans de nombreux contextes différents. Aussi, une analyse statique efficace doit pouvoir inférée des propriétés des composants valides pour toutes les instantiations possibles de contextes. Dans cette thèse, nous présentons une analyse qui relève les défis esquissés ci-dessus. En particulier, nous nous concentrons sur une analyse qui peut inférer des invariants de classe. Un invariant de classe est une propriété d'une classe valide pour chaque instanciation, avant et après l'exécution de n'importe quelle méthode de la classe. Notre analyse a plusieurs avantages. Elle est indépendante du langage, elle exploite la structure modulaire des langages orientés objet et elle gère les principales fonctionnalités de ces langages, à savoir l'héritage, le polymorphisme et l'encapsulation. Le cadre présenté dans cette thèse est très flexible. En particulier, il permet de régler finement l'analyse selon les trois axes orthogonaux suivants: - Domaine abstrait sous-jacent: une classe peut être analysée en utilisant soit un domaine abstrait générique soit un domaine abstrait symbolique de façon à obtenir une analyse plus efficace mais moins précise. - Gestion de l'héritage: une sous-classe peut être analysée soit directement, en expansant syntaxiquement la relation de sous-classe, soit indirectement, en utilisant l'invariant du parent afin d'éviter une explosion quadratique de la complexité. -Traitement des contextes d'instantiation: une classe peut être utilisée soit indépendamment du contexte, afin d'obtenir un résultat valable dans tous les contextes, soit en utilisant une approximation du contexte afin d'obtenir un résultat plus précis mais moins général.
|
129 |
OFL : un modèle pour paramétrer la sémantique opérationnelle des langages à objets - Application aux relations inter-classesCrescenzo, Pierre 20 December 2001 (has links) (PDF)
Le modèle OFL (Open Flexible Languages) décrit et réifie le comportement des langages à objets à classes courants tels Java, C++ ou Eiffel et permet de modifier, d'adapter, ce comportement. Dans cette optique, les notions de classe --- généralisée sous le nom de "description" --- et de "relation entre descriptions" sont réifiées. Chaque langage est décrit sous la forme d'un ensemble de composants formé de types de description et de types de relation. Pour définir chaque composant, le méta-programmeur doit donner une valeur à un ensemble de paramètres qui décrivent la sémantique opérationnelle du composant. Par exemple, pour définir une nouvelle relation, il devra répondre aux questions : La relation définit-elle une utilisation ou une importation ? La relation permet-elle le polymorphisme ? Si oui, dans quel(s) sens ? Quelle est sa cardinalité maximale ? Peut-elle être circulaire, répétée ? Possède-t-elle une relation inverse ? Une fois ces types de description et de relation définis par le méta-programmeur, le programmeur est en mesure d'en faire usage pour la réalisation de son application. Le but du modèle OFL est d'aider à améliorer la qualité du code produit en donnant plus d'information et donc de précision sur les relations entre descriptions. Nous souhaitons de cette manière favoriser l'évolution et la maintenabilité des applications par l'intermédiaire d'une meilleure spécification, d'une documentation plus explicite, de contrôles automatiques plus pertinents, ... Il s'agit également d'offrir une plus grande souplesse au programmeur en lui permettant, par une phase de paramétrage ou de méta-programmation, de mieux adapter son langage de programmation de prédilection à ses besoins. L'objectif de cette thèse est de définir le modèle OFL et d'en présenter des exemples d'application.
|
130 |
Méthodes et outils informatiques pour la commande locale ou distante de systèmes réactifsLe Parc, Philippe 08 July 2004 (has links) (PDF)
Ce document résume mon activité de recherche depuis 1991. Elle a porté sur deux thématiques connexes : la modélisation et la validation de langages métier de l'automatisme et le contrôle à distance de systèmes mécaniques sur des réseaux de communication non fiables. Le premier axe de recherche portait plus précisément sur la définition formelle des langages classiques de l'automatisme (langage à relais et Grafcet) à l'aide des formalismes synchrones tels que Signal ou Lustre. L'intérêt d'un tel travail était de pouvoir exprimer les différentes interprétations possibles d'un même programme afin de pouvoir les comparer ; les environnements développés autour des formalismes synchrones permettant alors la réalisation directe de simulateurs ainsi que l'ouverture vers des outils autorisant la validation des programmes. Dans ce dernier domaine, différentes pistes ont été étudiées avant de retenir une modélisation à l'aide d'automates temporisés permettant alors l'expression de propriétés temporelles sur les programmes modélisés. Le deuxième axe de travail avait et a pour objectif d'étudier la faisabilité de l'introduction des nouvelles technologies, et en particulier des technologies réseau, dans le contrôle supervisé de systèmes mécaniques. Le réseau est ici vu comme un réseau sans qualité de service, de type Internet, alors que l'une des préoccupations majeures des automaticiens est d'assurer une sécurité maximale. Dans un premier temps, nous avons proposé une architecture logicielle permettant la communication entre l'opérateur et le système à contrôler. Basée sur un noyau de services complété par des pilotes spécifiques aux applications cibles, elle est facilement extensible. Pour prendre en compte les aléas réseau, la méthodologie Gemma, utilisée en ingéniérie des automatismes, a été étendue afin d'intégrer des informations en provenance d'un capteur réseau. Ce dernier permet d'estimer la qualité de la connexion d'un bout à l'autre du système de communication et doit être pris en compte automatiquement, et en permanence, par le système afin d'assurer la sécurité du contrôle supervisé. Bien que différentes, ces deux thématiques se rejoignent sur de nombreux points : --- Le domaine d'application, c'est à dire le contrôle de systèmes en environnement de production industriel. D'un côté, on a cherché à assurer une meilleure qualité, de la spécification à l'implantation en passant par la vérification des applications. De l'autre en proposant l'utilisation des nouvelles technologies de communication pour améliorer la productivité globale de l'entreprise. --- L'utilisation et l'introduction des méthodes et des outils de l'informaticien auprès de la communauté des automaticiens. Dans mon premier domaine de recherche, par l'intermédiaire du monde dit "synchrone" et dans le deuxième par la mise en oeuvre des technologies autour de l'Internet. Dans les deux cas, les technologies informatiques se sont placées au service d'autres disciplines tout en essayant de faire ressortir les points difficiles et de proposer des solutions innovantes. --- Le souci permanent de construire des applications sûres et de valider, si possible de manière formelle, les résultats obtenus. Cet aspect est surtout visible dans le cadre de la première activité de recherche, mais des travaux, non encore achevés, ont également porté sur la validation de l'architecture logicielle proposée pour le contrôle à distance. Ils sont directement issus des connaissances et de l'expérience acquises dans le premier thème.
|
Page generated in 0.0399 seconds