Tracking Data-Flow with Open Closure Types - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Rapport (Rapport De Recherche) 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 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
RR-8345.pdf (358.72 Ko) Télécharger le fichier
README (1.27 Ko) Télécharger le fichier
RR-8345/README (246 B) Télécharger le fichier
RR-8345/RR-8345.pdf (358.72 Ko) Télécharger le fichier
RR-8345/RR-8345.tex (82.76 Ko) Télécharger le fichier
RR-8345/RR.sty (14.89 Ko) Télécharger le fichier
RR-8345/boolean.sty (4.3 Ko) Télécharger le fichier
RR-8345/copytofile.sty (2.91 Ko) Télécharger le fichier
RR-8345/header.tex (9.47 Ko) Télécharger le fichier
RR-8345/lit.bib (4.64 Ko) Télécharger le fichier
RR-8345/llncs.cls (41.77 Ko) Télécharger le fichier
RR-8345/logo-inria.eps (367.87 Ko) Télécharger le fichier
RR-8345/logo-inria.png (275.12 Ko) Télécharger le fichier
RR-8345/mathpartir.sty (13.85 Ko) Télécharger le fichier
RR-8345/pagei.eps (96.75 Ko) Télécharger le fichier
RR-8345/pagei.png (26.87 Ko) Télécharger le fichier
RR-8345/publications.bib (5.62 Ko) Télécharger le fichier
RR-8345/reversion.sty (1.79 Ko) Télécharger le fichier
RR-8345/rrpage1.eps (223.72 Ko) Télécharger le fichier
RR-8345/rrpage1.png (47.58 Ko) Télécharger le fichier
RR-8345/squelette-rr.tex (5.17 Ko) Télécharger le fichier
_tags (114 B) Télécharger le fichier
closures.ml (4.42 Ko) Télécharger le fichier
closures_check.ml (33.13 Ko) Télécharger le fichier
closures_config.ml (97 B) Télécharger le fichier
closures_lexer.ml (1.82 Ko) Télécharger le fichier
closures_parser.mly (3.25 Ko) Télécharger le fichier
closures_parser.mlypack (16 B) Télécharger le fichier
closures_print.ml (12.92 Ko) Télécharger le fichier
closures_test.ml (148 B) Télécharger le fichier
closures_types.ml (2.44 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Format : Autre
Loading...

Dates et versions

hal-00851658 , version 1 (19-08-2013)

Identifiants

  • HAL Id : hal-00851658 , version 1

Citer

Gabriel Scherer, Jan Hoffmann. Tracking Data-Flow with Open Closure Types. [Research Report] RR-8345, INRIA. 2013, pp.24. ⟨hal-00851658⟩
205 Consultations
197 Téléchargements

Partager

Gmail Facebook X LinkedIn More