Principals in programming languages: A syntactic proof technique

Citation
S. Zdancewic et al., Principals in programming languages: A syntactic proof technique, ACM SIGPL N, 34(9), 1999, pp. 197-207
Citations number
25
Categorie Soggetti
Computer Science & Engineering
Journal title
ACM SIGPLAN NOTICES
ISSN journal
15232867 → ACNP
Volume
34
Issue
9
Year of publication
1999
Pages
197 - 207
Database
ISI
SICI code
1523-2867(199909)34:9<197:PIPLAS>2.0.ZU;2-O
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, o r a collection of interactive agents. In this paper, we formalize this notion of principal in the programming lan guage itself. The result is a language in which intuitive statements such a s, "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 lambda-calculus and show how we can track the code corresponding to each principal throughout evalua tion. This multiagent calculus yields syntactic proofs of some type abstrac tion properties that traditionally require semantic arguments.