Type-based static analysis of structural properties in programming languages - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2005

Type-based static analysis of structural properties in programming languages

Analyse statique typée des propriétés structurelles des programmes

Résumé

We introduce a general static analysis framework for inferring `structural' or `usage' properties for functional programs. the term `structural', borrowed from proof theory, is used here to suggest a strong connection with linear logic, for which the structural rules of weakening and contraction play an important role. We present the problem of static analysis in this context as that of finding a translation from a PCF-like source language into the intermediate language decorated with structural annotations. we show how the set of all possible translations can be characterised as a set of inequations over a suitable algebraic annotation ordered set. in particular, we are interested in the least solution of this set of inequations, corresponding to the most accurate, or optimal, translation. Most of this thesis dissertation is concerned with the detailed presentation of a case study, linearity analysis, aimed at determining when values are used exactly once. We begin by describing a very simplistic version of linearity analysis and then introduce two further extensions which embody notions of annotation subtyping and polymorphism. The latter turns out to be a key feature in practice, as it allows the analysis to retain its expressive power across separately compiled modules.
Dans cette thèse, on présente un cadre théorique général d'analyse statique pour l'inférence de propriétés `structurelles' ou d'`usage' des programmes. Le terme `structurel', emprunté à la théorie de la démonstration, suggère un rapport étroit avec la logique linéaire, où les règles structurelles de contraction et affaiblissement jouent un rôle important. Le problème de l'analyse statique consiste à trouver une traduction d'un langage source dans le style de PCF vers un langage comportant des annotations structurelles. On montre que l'on peut characteriser l'ensemble de traductions possibles comme des solutions d'un ensemble d'inequations appropriées. Plus particulièrement, on s'intéresse à la plus petite solution, qui correspond à la traduction la plus précise ou optimale. La plus grande partie de ce manuscrit de thèse est dédié à un seul cas d'étude, l'analyse linéaire, dont l'objectif est de déterminer les valeurs qui sont utilisées une seule fois. On decrit d'abord une version de l'analyse linéaire très simplifiée, en suite on introduise des extensions qui comportent des notions de sous-typage et du polymorphisme d'annotations, ce étant clé dans la pratique, car il permet à l'analyse de garder son pouvoir expressif en présence de modules compilés séparément.
Fichier principal
Vignette du fichier
tel-00010369.pdf (1.06 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-00010369 , version 1 (03-10-2005)

Identifiants

  • HAL Id : tel-00010369 , version 1

Citer

Francisco Alberti. Type-based static analysis of structural properties in programming languages. Software Engineering [cs.SE]. Université Paris-Diderot - Paris VII, 2005. English. ⟨NNT : ⟩. ⟨tel-00010369⟩
119 Consultations
293 Téléchargements

Partager

Gmail Facebook X LinkedIn More