Tracking Data-Flow with Open Closure Types - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Conference Papers 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 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
Origin Files produced by the author(s)
Loading...

Dates and versions

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

Identifiers

Cite

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
160 View
298 Download

Altmetric

Share

Gmail Mastodon Facebook X LinkedIn More