Intensional polymorphism in type-erasure semantics

2002 ◽  
Vol 12 (6) ◽  
pp. 567-600 ◽  
Author(s):  
KARL CRARY ◽  
STEPHANIE WEIRICH ◽  
GREG MORRISETT

Intensional polymorphism, the ability to dispatch to different routines based on types at run time, enables a variety of advanced implementation techniques for polymorphic languages, including tag-free garbage collection, unboxed function arguments, polymorphic marshalling and attened data structures. To date, languages that support intensional polymorphism have required a type-passing (as opposed to type-erasure) interpretation where types are constructed and passed to polymorphic functions at run time. Unfortunately, type-passing suffers from a number of drawbacks: it requires duplication of run-time constructs at the term and type levels, it prevents abstraction, and it severely complicates polymorphic closure conversion. We present a type-theoretic framework that supports intensional polymorphism, but avoids many of the disadvantages of type passing. In our approach, run-time type information is represented by ordinary terms. This avoids the duplication problem, allows us to recover abstraction, and avoids complications with closure conversion. In addition, our type system provides another improvement in expressiveness; it allows unknown types to be refined in place, thereby avoiding certain beta-expansions required by other frameworks.

1994 ◽  
Vol VII (3) ◽  
pp. 12-23 ◽  
Author(s):  
Shail Aditya ◽  
Christine H. Flood ◽  
James E. Hicks

Author(s):  
Tyson Dowd ◽  
Zoltan Somogyi ◽  
Fergus Henderson ◽  
Thomas Conway ◽  
David Jeffery
Keyword(s):  
Run Time ◽  

1999 ◽  
Vol 34 (3) ◽  
pp. 146-153
Author(s):  
Sheetal V. Kakkad ◽  
Mark S. Johnstone ◽  
Paul R. Wilson
Keyword(s):  
Run Time ◽  

1982 ◽  
Vol 12 (4) ◽  
pp. 394-394
Author(s):  
Roger B. Dannenberg
Keyword(s):  

2005 ◽  
Vol 16 (1) ◽  
pp. 83-128 ◽  
Author(s):  
TIAN ZHAO ◽  
JENS PALSBERG ◽  
JAN VITEK

Confinement properties impose a structure on object graphs which can be used to enforce encapsulation properties. From a practical point of view, encapsulation is essential for building secure object-oriented systems as security requires that the interface between trusted and untrusted components of a system be clearly delineated and restricted to the smallest possible set of operations and data structures. This paper investigates the notion of package-level confinement and proposes a type system that enforces this notion for a call-by-value object calculus as well as a generic extension thereof. We give a proof of soundness of this type system, and establish links between this work and related research in language-based security.


2016 ◽  
Vol 1 (1) ◽  
Author(s):  
Benjamin Schiller ◽  
Clemens Deusser ◽  
Jeronimo Castrillon ◽  
Thorsten Strufe

Sign in / Sign up

Export Citation Format

Share Document