6 research outputs found

    Actes de la conférence JFLA 2009 (Vingtièmes Journées Francophones des Langages Applicatifs)

    Get PDF
    Ce fichier regroupe en un seul document l'ensemble des articles acceptés pour la conférence JFLA 2009.Pour la vingtième année consécutive, les Journées Francophones des Langages Applications sont l'occasion de se retrouver dans un cadre agréable et propice aux échanges conviviaux. Cette année, c'est à Saint-Quentin sur Isère, près de Grenoble, que nous nous réunissons, maintenant la tradition de l'alternance mer-montagne. Les neuf articles choisis par le comité de programme reflètent bien la diversité de notre communauté et les avancés tant du point de vue de l'application de langages fonctionnels que de la conception et de l'utilisation d'assistants à la preuve. Nous avons souhaité également inclure des articles plus proches de tutoriels ou de retours d'expérience, ceux-ci étant particulièrement adaptés au cadre pédagogique des Journées. Deux orateurs nous ont fait l'honneur d'accepter notre invitation. L'exposé de Vincent Balat, de l'université Paris 7, intitulé ≪ Ocsigen : approche fonctionnelle typée de la programmation Web ≫ illustre l'utilisation croissante de langages applicatifs dans des milieux inattendus. L'exposé de Bruno Barras, de Trusted Labs, intitulé ≪ Faut-il avoir peur de sa carte SIM ? ≫ présente l'application d'assistants à la preuve dans la modélisation de cartes à puces. Pour la quatrième année consécutive, deux sessions d'une demi-journée chacune sont consacrées à des cours. Le premier porte sur la modélisation de la linguistique (par Gérard Huet, de l'INRIA Paris - Rocquencourt) et le deuxième sur les bibliothèques Coq utilisées dans la preuve récente du théorème des quatre couleurs (par Assia Mahboubi, de l'INRIA Saclay - Île-de-France)

    L'interface native de Nit, un langage de programmation Ă  objets

    Get 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.\ud ______________________________________________________________________________ \ud MOTS-CLÉS DE L’AUTEUR : interface native, interface de fonctions étrangères, compilation, langages de programmation à objet

    Elaboration d'un moteur de traitement des données spatiales massives vectorielles optimisant l'indexation spatiale

    Get PDF
    Les données massives se situent au coeur de beaucoup d’enjeux scientifiques et sociétaux, et leur volume global ne cesse de croître. Il devient donc crucial de disposer de solutions permettant leur traitement et leur analyse. Hélas, alors qu’une majorité de ces données intègrent une composante spatiale vectorielle, peu de systèmes sont à même de gérer cette dernière. En outre, les rares prototypes qui s’y essaient respectent mal les standards ISO et les spécifications OGC et présentent des performances limitées. La présente recherche visait donc à déterminer comment gérer les données spatiales massives vectorielles de façon plus complète et efficiente. Il s’agissait en particulier de trouver une façon de les indexer avec une bonne scalabilité horizontale, d’assurer leur compatibilité avec la norme ISO-19125 et ses extensions, et de les rendre accessibles depuis les logiciels SIG. Il en résulte le système Elcano, une extension spatiale au système de gestion de données massives Spark qui fournit des performances accrues par rapport aux solutions du marché.Big data are in the midst of many scientific and economic issues. Furthermore their volume is continuously increasing. As a result, the need for management and processing solutions has become critical. Unfortunately, while most of these data have a vectorial spatial component, almost none of the current systems are able to manage it. In addition, the few systems who try either do not respect the ISO standards and OGC specifications or show poor performances. The aim of this research was then to determine how to manage the vectorial massive data more completely and efficiently. The objective was to find a scalable way of indexing them, ensuring their compatibility with ISO-19125 and its extensions, and making them accessible from GIS. The result is the Elcano system. It is an extension of the massive data management system Spark which provides increased performance compared to current market solutions

    Typer la désérialisation sans sérialiser les types

    No full text
    PARIS7-Bibliothèque centrale (751132105) / SudocSudocFranceF

    Typer la désérialisation sans sérialiser les types

    Get PDF
    National audienceIn this paper, we propose a way of assigning static type information to unmarshalling functions and we describe a verification technique for unmarshalled data that preserves the execution safety provided by static type checking. This technique, whose correctness is proven, relies on singleton types whose values are transmitted to unmarshalling routines at runtime, and on an efficient checking algorithm able to deal with sharing and cycles

    Typer la désérialisation sans sérialiser les types

    Get PDF
    Static typechecking in programming languages allows strong safety properties--well-typed programs don't go wrong--and avoids costly dynamic type checking and runtime type representation. In this setting, simple (un)marshalling primitives may break invariants assumed by the compiler and void the warranty. In order to preserve type-safety, some dynamic type checking of unmarshalled data is required. This thesis defines, for programming languages based on parametric polymorphism and uniform data representation, a notion of compatibility between (unmarshalled) memory graphs and types. This notion is expressed as constraints over nodes of the memory graph. The constraint representation allows to build a constraint solver based on a rewriting system, and then to build an algorithm to check the compatibility of a memory graph with a type. Correction and completeness of the algorithm are studied in presence of algebraic data types, mutable data, cycles and functional values. This thesis also provides a prototype tailored for the OCaml compiler.Le typage statique des langages de programmation garantit des propriétés de sûreté d'exécution des programmes et permet l'usage de représentations de données dénuées d'informations de types. En présence de primitives de (dé)sérialisation, ces données brutes peuvent invalider les propriétés apportées par le typage statique. Il est alors utile de pouvoir tester dynamiquement la compatibilité des données lues avec le type statique attendu. Cette thèse définit, dans le cadre des langages de programmation basés sur un système de types avec polymorphisme paramétrique et utilisant une représentation uniforme des données, une notion de compatibilité d'un graphe mémoire (désérialisé) avec un type ; cette notion s'exprime sous la forme de contraintes de types sur les nœuds du graphe mémoire. Cette formalisation permet de construire un mécanisme de résolution de contraintes par réécriture, puis un algorithme de vérification de compatibilité d'un graphe mémoire avec un type. Les propriétés de correction et de complétude de l'algorithme obtenu sont étudiées en présence de types algébriques, de données modifiables, de cycles et de valeurs fonctionnelles. Cette thèse propose également un prototype pour le compilateur OCaml
    corecore