Tracking Data-Flow with Open Closure Types - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Reports (Research Report) Year : 2013

Tracking Data-Flow with Open Closure Types

Jan Hoffmann
  • Function : Author
  • PersonId : 944560

Abstract

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
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
README (1.27 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/README (246 B) Télécharger le fichier
RR-8345/reversion.sty (1.79 Ko) 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/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
Origin : Files produced by the author(s)
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Format : Other
Loading...

Dates and versions

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

Identifiers

  • HAL Id : hal-00851658 , version 1

Cite

Gabriel Scherer, Jan Hoffmann. Tracking Data-Flow with Open Closure Types. [Research Report] RR-8345, INRIA. 2013, pp.24. ⟨hal-00851658⟩
188 View
193 Download

Share

Gmail Facebook Twitter LinkedIn More