Typer la désérialisation sans sérialiser les types - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2011

Typing unmarshalling without marshalling types

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

Grégoire Henry
  • Fonction : Auteur
  • PersonId : 839857

Résumé

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.
Fichier principal
Vignette du fichier
these.pdf (3.42 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-00624156 , version 1 (16-09-2011)

Identifiants

  • HAL Id : tel-00624156 , version 1

Citer

Grégoire Henry. Typer la désérialisation sans sérialiser les types. Autre [cs.OH]. Université Paris-Diderot - Paris VII, 2011. Français. ⟨NNT : ⟩. ⟨tel-00624156⟩
219 Consultations
583 Téléchargements

Partager

Gmail Facebook X LinkedIn More