Affiliation:
1. KU Leuven, Leuven, Belgium
2. University of Trento, Trento, Italy
Abstract
The formal calculus System F models the essence of polymorphism and abstract data types, features that exist in many programming languages. The calculus’ core property is parametricity: a theorem expressing the language’s abstractions and validating important principles like information hiding and modularity.
When System F is combined with features like recursive types, mutable state, continuations or exceptions, the formulation of parametricity needs to be adapted to follow suit, for example using techniques like step-indexing, Kripke world-indexing or biorthogonality. However, it is less clear how this formulation should change when System F is combined with untyped languages, gradual types, dynamic sealing and runtime type analysis (typecase) alongside type generation. Extensions of System F with these features have been proven to satisfy forms of parametricity (with Kripke worlds carrying semantic interpretations of types). However, the relative power of the modified formulations of parametricity with respect to others and the relative expressiveness of System F with and without these extensions are unknown.
In this paper, we explain that the aforementioned different settings have a common characteristic: they do not enforce or preserve the lexical scope of System F’s type variables. Formally, this results in the existence of a
universal type
(note: this is not the same as a
universally-quantified
type). We explain why standard parametricity is incompatible with such a type and how type worlds resolve this. Building on these insights, we answer two open conjectures from the literature, negatively, and we point out a deficiency in current proposals for combining System F with gradual types.
Funder
Air Force Office of Scientific Research
German Federal Ministry of Education and Research
Italian Ministry of Education
Publisher
Association for Computing Machinery (ACM)
Reference91 articles.
1. Martín Abadi. 1998. Protection in programming-language translations. In ICALP’98. 868–883.
2. Dynamic typing in a statically typed language
3. Dynamic typing in polymorphic languages
4. Martín Abadi, Cédric Fournet, and Georges Gonthier. 1998. Secure implementation of channel abstractions. In IEEE Symposium on Logic in Computer Science. 105–116.
5. Martín Abadi, Cédric Fournet, and Georges Gonthier. 1999. Secure communications processing for distributed languages. In IEEE Symposium on Security and Privacy. 74–88.
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. GTP Benchmarks for Gradual Typing Performance;Proceedings of the 2023 ACM Conference on Reproducibility and Replicability;2023-06-27