Tracking Data-Flow with Open Closure Types - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Communication Dans Un Congrès Année : 2013

Tracking Data-Flow with Open Closure Types

Jan Hoffmann
  • Fonction : Auteur
  • PersonId : 944560

Résumé

Type systems hide data that is captured by function closures in function types. In most cases this is a beneficial design that favors simplicity and compositionality. However, some applications require explicit information about the data that is captured in closures. This paper introduces open closure types, that is, function types that are decorated with type contexts. They are used to track data-flow from the environment into the function closure. A simply-typed lambda calculus is used to study the properties of the type theory of open closure types. A distinctive feature of this type theory is that an open closure type of a function can vary in different type contexts. To present an application of the type theory, it is shown that a type derivation establishes a simple non-interference property in the sense of information-flow theory. A publicly available prototype implementation of the system can be used to experiment with type derivations for example programs.
Les systèmes de types habituels pour le lambda-calcul cachent les variables capturées par une fermeture, et ce dès sa création. À un point donné du programme, il est en fait possible de mentionner certaines de ces variables, celles qui sont toujours présentes dans l'environnement lexical de typage. Ce raffinement des types de fermetures, plus ''ouverts'' car mentionnant le contexte qui les entoure, est désirable pour certaines applications des systèmes de types à l'analyse de programmes. Cet article introduit formellement de tels types ouverts de fermetures, pour mettre à plat leur traitement théorique recélant quelques difficultés techniques: le type d'une fermeture mentionne ses dépendances sur le contexte, et varie donc selon les différents point du programme. En guise d'exemple, ils sont utilisés pour garder trace des informations de typage de flots de données induits par la capture des valeurs de l'environnement dans les fermetures. Un prototype d'implémentation de ce système de types est publiquement disponible.
Fichier principal
Vignette du fichier
closures.pdf (192.6 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-00911656 , version 1 (29-11-2013)

Identifiants

Citer

Gabriel Scherer, Jan Hoffmann. Tracking Data-Flow with Open Closure Types. LPAR 2013 - 19th International Conference Logic for Programming, Artificial Intelligence, and Reasoning, Dec 2013, Stellenbosch, South Africa. pp.710-726. ⟨hal-00911656⟩

Collections

INRIA INRIA2
159 Consultations
292 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More