ACM Home Page
Please provide us with feedback. Feedback
Principals in programming languages: a syntactic proof technique
Full text PdfPdf (1.32 MB)
Source International Conference on Functional Programming archive
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming table of contents
Paris, France
Pages: 197 - 207  
Year of Publication: 1999
ISBN:1-58113-111-9
Also published in ...
Authors
Steve Zdancewic  Department of Computer Science, Cornell University
Dan Grossman  Department of Computer Science, Cornell University
Greg Morrisett  Department of Computer Science, Cornell University
Sponsors
INRIA : Institut Natl de Recherche en Info et en Automatique
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 23,   Citation Count: 8
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/317636.317799
What is a DOI?

ABSTRACT

Programs are often structured around the idea that different pieces of code comprise distinct principals, each with a view of its environment. Typical examples include the modules of a large program, a host and its clients, or a collection of interactive agents.In this paper, we formalize this notion of principal in the programming language itself. The result is a language in which intuitive statements such as, "the client must call open to obtain a file handle," can be phrased and proven formally.We add principals to variants of the simply-typed λ-calculus and show how we can track the code corresponding to each principal throughout evaluation. This multiagent calculus yields syntactic proofs of some type abstraction properties that traditionally require semantic arguments.


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
Godmar Back, Patrick Tullmann, Leigh Stoller, Wilson C. Hseih, and Jay Lepreau. Java operating systems: Design and implementation. Technical Report UUCS-98-015, University of Utah, August 1998.
3
4
 
5
6
 
7
Chris Hawblitzel, Chi-Chao Chang, Grzegorz Czajkowski, Deyu Hu, and Thorston yon Eiken. Implementing multiple protection domains in /lava.. In 1998 USENiX Annual Technical Conference, New Orleans, LA, June 1998.
8
9
 
10
 
11
12
13
 
14
 
15
John Peterson, Kevin Hammond, Lennart Augustsson, Brian Boutel, Warren Burton, Joseph Fasel~, Andrew D. Gordon, John Hughes, Paul Hudak, Thomas Johnsson, Mark Jones, Erik Meijer, Simon Peyton Jones, Alastair Reid, and Philip Wadler. Report on the programming language Haskell, version 1.4. http://www.haskell.org/report.
 
16
Benjamin C. Pierce and Deride Sangiorgi. Behavioral equivalence in the polymorphic pi-calculus. Technical Report MS- CIS-99-10, University of Pennsylvania, April 1999.
 
17
John Hamilton Reppy. Higher-order Concurrency. PhD thesis, Cornell University, Ithaca, NY, June 1992. TR 92-1852.
 
18
 
19
John C. Reynolds. Types, abstraction, and parametric polymorphism. In R.E.A Mason, editor, Information Processing, pages 513-523. Elsevier Science Publishers B.V., 1983.
 
20
C. Strachey. Fundamental concepts in programming languages. Unpublished Lecture Notes, Summer School in Computer Programming, August 1967.
 
21
 
22
Dan S. Wallach and Edward W. Felten. Understanding Java stack inspection. In Proceedings oj' 1998 IEEE Symposium on Security and Privacy, Oakland, CA, May 1998.
 
23
Dan Seth Wallach. A New Approach to Mobile Code Security. PhD thesis, Princeton University, 1999.
 
24
 
25
Steve Zdancewic and Dan Grossman. Syntax and semantics for multiple agents and abstract types. Technical Report 99-1752, Cornell University, March 1999.


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