|
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
|
|
|
|
|
|
|
|
Peter Sewell , James J. Leifer , Keith Wansbrough , Francesco Zappa Nardelli , Mair Allen-Williams , Pierre Habouzit , Viktor Vafeiadis, Acute: high-level programming language design for distributed computation, ACM SIGPLAN Notices, v.40 n.9, September 2005
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dimitrios Vytiniotis , Geoffrey Washburn , Stephanie Weirich, An open and shut typecase, Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation, p.13-24, January 10-10, 2005, Long Beach, California, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PETER SEWELL , JAMES J. LEIFER , KEITH WANSBROUGH , FRANCESCO ZAPPA NARDELLI , MAIR ALLEN-WILLIAMS , PIERRE HABOUZIT , VIKTOR VAFEIADIS, Acute: High-level programming language design for distributed computation, Journal of Functional Programming, v.17 n.4-5, p.547-612, July 2007
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
John Billings , Peter Sewell , Mark Shinwell , Rok Strniša, Type-safe distributed programming for OCaml, Proceedings of the 2006 workshop on ML, September 16-16, 2006, Portland, Oregon, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.11
Software Architectures
Subjects:
Information hiding
Additional Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.11
Software Architectures
Subjects:
Languages (e.g., description, interconnection, definition)
D.3
PROGRAMMING LANGUAGES
D.3.1
Formal Definitions and Theory
Subjects:
Syntax;
Semantics
D.3.3
Language Constructs and Features
Subjects:
Abstract data types
F.
Theory of Computation
F.3
LOGICS AND MEANINGS OF PROGRAMS
F.3.2
Semantics of Programming Languages
Subjects:
Operational semantics
F.3.3
Studies of Program Constructs
Subjects:
Type structure
General Terms:
Languages,
Security,
Theory,
Verification
Keywords:
operational semantics,
parametricity,
proof techniques,
syntactic proofs,
type abstraction
|