Download:
|
by Dan Grossman, Greg Morrisett, Steve Zdancewic
ACM TOPLAS
http://www.cs.cornell.edu/zdance/syntactic_abs.ps
Add To MetaCart
Abstract:
Software developers often structure programs in such a way that dierent pieces of code constitute distinct principals. Types help dene the protocol by which these principals interact. In particular, abstract types allow a principal to make strong assumptions about how well-typed clients use the facilities that it provides. We show how the notions of principals and type abstraction can be formalized within a language. Dierent principals can know the implementation of dierent abstract types. We use additional syntax to track the
ow of values with abstract types during the evaluation of a program and demonstrate how this framework supports syntactic proofs (in the style of subject reduction) for type-abstraction properties. Such properties have traditionally required semantic arguments; using syntax avoids the need to build a model for the language. We present various typed lambda calculi with principals, including versions that have mutable state and recursive types.
Citations
|
513
|
The Definition of Standard ML (Revised
– Milner, Tofte, et al.
- 1997
|
|
281
|
Abstract types have existential type
– Mitchell, Plotkin
- 1988
|
|
269
|
Proofs and Types
– Girard, Lafont, et al.
- 1989
|
|
248
|
Jflow: practical mostly-static information flow control
– Myers
- 1999
|
|
190
|
The SLam calculus: programming with secrecy and integrity
– HEINTZE, RIECKE
- 1998
|
|
109
|
Formal parametric polymorphism
– Abadi, Cardelli, et al.
- 1993
|
|
103
|
Compiling with Types
– Morrisett
- 1995
|
|
96
|
98: A non-strict, purely functional language. http://www.haskell.org
– Jones, Hughes
- 1999
|
|
69
|
Relational properties of domains
– Pitts
- 1996
|
|
66
|
Security properties of typed applets
– Leroy, Rouaix
- 1999
|
|
61
|
Parametric polymorphism and operational equivalence
– Pitts
- 2000
|
|
58
|
A note on: “A simplified account of polymorphic references
– Harper
|
|
54
|
Types, abstraction, and parametric polymorphism, part 2
– Ma, Reynolds
- 1991
|
|
48
|
Behavioral equivalence in the polymorphic picalculus
– Pierce, Sangiorgi
|
|
46
|
dI-domains as a model of polymorphism
– Coquand, Gunter, et al.
- 1987
|
|
34
|
On the equivalence of data representations
– Mitchell
- 1991
|
|
33
|
Domain theoretic models of polymorphism
– Coquand, Gunter, et al.
- 1989
|
|
12
|
A simple proof technique for certain parametricity results
– Crary
- 1998
|
|
10
|
JFlow: Practical mostly-static information control
– Myers
- 1999
|
|
9
|
Parametric polymorphism and operational equivalence. Mathematical Structures in Computer Science 10, 321–359. Preliminary version appeared
– Pitts
- 1998
|
|
8
|
Two-Level Functional Languages. Number 34
– Nielson, Nielson
- 1992
|
|
2
|
A PER model of polymorphism
– Abadi, Plotkin
- 1990
|
|
1
|
An ideal model for recursive polymorphism
– MacQueen, Plotkin, et al.
- 1986
|