An ideal model for recursive polymorphic types
Information and Control
Abstract types have existential type
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proofs and types
Domain theoretic models of polymorphism
Information and Computation
Two-level functional languages
Two-level functional languages
On the equivalence of data representations
Artificial intelligence and mathematical theory of computation
Formal parametric polymorphism
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A simplified account of polymorphic references
Information Processing Letters
A syntactic approach to type soundness
Information and Computation
Behavioral equivalence in the polymorphic pi-calculus
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The SLam calculus: programming with secrecy and integrity
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Security properties of typed applets
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
JFlow: practical mostly-static information flow control
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A simple proof technique for certain parametricity results
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Principals in programming languages: a syntactic proof technique
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
The Definition of Standard ML
DI-Domains as a Model of Polymorphism
Proceedings of the 3rd Workshop on Mathematical Foundations of Programming Language Semantics
Types, Abstractions, and Parametric Polymorphism, Part 2
Proceedings of the 7th International Conference on Mathematical Foundations of Programming Semantics
A Type-Based Approach to Program Security
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Towards a theory of type structure
Programming Symposium, Proceedings Colloque sur la Programmation
Parametric polymorphism and operational equivalence
Mathematical Structures in Computer Science
Representation independence, confinement and access control [extended abstract]
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Stack inspection: theory and variants
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The code of many colors: relating threads to code and shared state
Proceedings of the 2002 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Stack inspection: Theory and variants
ACM Transactions on Programming Languages and Systems (TOPLAS)
Generativity and dynamic opacity for abstract types
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Global abstraction-safe marshalling with hash types
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
A bisimulation for dynamic sealing
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Syntactic Approach to Foundational Proof-Carrying Code
Journal of Automated Reasoning
TLDI '05 Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation
Permission-based ownership: encapsulating state in higher-order typed languages
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Acute: high-level programming language design for distributed computation
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Ownership confinement ensures representation independence for object-oriented programs
Journal of the ACM (JACM)
Journal of Functional Programming
Quantified types in an imperative language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Abstraction preservation and subtyping in distributed languages
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Type-safe distributed programming for OCaml
Proceedings of the 2006 workshop on ML
Type-sensitive control-flow analysis
Proceedings of the 2006 workshop on ML
A bisimulation for dynamic sealing
Theoretical Computer Science
Acute: High-level programming language design for distributed computation
Journal of Functional Programming
Dynamic Translucency with Abstraction Kinds and Higher-Order Coercions
Electronic Notes in Theoretical Computer Science (ENTCS)
Operational semantics for multi-language programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A language for information flow: dynamic tracking in multiple interdependent dimensions
Proceedings of the ACM SIGPLAN Fourth Workshop on Programming Languages and Analysis for Security
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Parametric polymorphism through run-time sealing or, theorems for low, low prices!
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verifying stateful programs with substructural state and hoare types
Proceedings of the 5th ACM workshop on Programming languages meets program verification
Journal of Functional Programming - Dedicated to ICFP 2009
Enforcing stateful authorization and information flow policies in fine
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Hi-index | 0.00 |
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.