ACM Home Page
Please provide us with feedback. Feedback
Syntactic type abstraction
Full text PdfPdf (454 KB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 22 ,  Issue 6  (November 2000) table of contents
Pages: 1037 - 1080  
Year of Publication: 2000
ISSN:0164-0925
Authors
Dan Grossman  Cornell Univ., Ithaca, NY
Greg Morrisett
Steve Zdancewic
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 50,   Citation Count: 22
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/371880.371887
What is a DOI?

ABSTRACT

Software developers often structure programs in such a way that different pieces of code constitute distinct principals. Types help define 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. Different principals can know the implementation of different abstract types. We use additional syntax to track the flow of values with abstract types during the evaluation of a program and demonstrate how this framework supports syntactic proofs (in the sytle of subject reduction) for type-abstraction properties. Such properties have traditionally required semantic arguments; using syntax aboids the need to build a model and recursive typesfor the language. We present various typed lambda calculi with principals, including versions that have mutable state and recursive types.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
Abadi, M. and Plotkin, G. D. 1990. A PER model of polymorphism. In 5th Annual Symposium on Logic in Computer Science. IEEE Computer Society Press, Los Alamitos, CA, 355-365.
 
3
 
4
5
 
6
 
7
8
9
 
10
 
11
 
12
 
13
14
 
15
Morrisett, G. 1995. Compiling with types. Ph.D. thesis, Carnegie Mellon University. Published as CMU Tech Report number CMU-CS-95-226.
16
 
17
 
18
Peyton Jones, S., Hughes, J., Augustsson, L., Barton, D., Boutel, B., Fasel, J., Hammond, K., Hinze, R., Hudak, P., Johnsson, T., Jones, M., Launchbury, J., Meijer, E., Peterson, J., Reid, A., Runciman, C., and Wadler, P. 1999. Haskell 98: A non-strict, purely functional language. http://www.haskell.org/onlinereport/.
19
 
20
Pitts, A. M. 1996. Relational properties of domains. Inf. Comput. 127, 66-90.
 
21
 
22
 
23
Reynolds, J. C. 1983. Types, abstraction and parametric polymorphism. In Information Processing 83, R. E. A. Mason, Ed. Elsevier Science Publishers B. V. (North-Holland), Amsterdam, 513-523.
 
24
Sewell, P. and Vitek, J. 1999. Secure composition of untrusted code with wrappers and causality types. Work in Progress http://www.cs.purdue.edu/homes/jv/publist.html.
 
25
Strachey, C. 1967. Fundamental concepts in programming languages. Unpublished Lecture Notes, Summer School in Computer Programming.
 
26
 
27
28

CITED BY  22

Collaborative Colleagues:
Dan Grossman: colleagues
Greg Morrisett: colleagues
Steve Zdancewic: colleagues