Theoretical Computer Science
The semantic foundations of concurrent constraint programming
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Logic programming in a fragment of intuitionistic linear logic
Papers presented at the IEEE symposium on Logic in computer science
Linear concurrent constraint programming: operational and phase semantics
Information and Computation
Capabilities for Sharing: A Generalisation of Uniqueness and Read-Only
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Timed constraint programming: a declarative approach to usage control
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
Modular typestate checking of aliased objects
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Verifying correct usage of atomic blocks and typestate
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Concurrency by default: using permissions to express dataflow in stateful programs
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Checking interference with fractional permissions
SAS'03 Proceedings of the 10th international conference on Static analysis
Rodin: an open toolset for modelling and reasoning in Event-B
International Journal on Software Tools for Technology Transfer (STTT) - Special Section on VSTTE 2008
Lightweight verification of a multi-task threaded server: a case study with the plural tool
FMICS'11 Proceedings of the 16th international conference on Formal methods for industrial critical systems
First-class state change in plaid
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
On the specification of sequent systems
LPAR'05 Proceedings of the 12th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
A type system for borrowing permissions
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verifying concurrent programs with chalice
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Programming with Higher-Order Logic
Programming with Higher-Order Logic
Hi-index | 0.00 |
A recent trend in object oriented programming languages is the use Access Permissions (AP) as abstraction to control concurrent executions. AP define a protocol specifying how different references can access the mutable state of objects. Although AP simplify the task of writing concurrent code, an unsystematic use of permissions in the program can lead to subtle problems. This paper presents a Linear Concurrent Constraint (lcc) approach to verify AP annotated programs. We model AP as constraints (i.e., formulas in logic) in an underlying constraint system, and we use entailment of constraints to faithfully model the flow of AP in the program. We verify relevant properties about programs by taking advantage of the declarative interpretation of lcc agents as formulas in linear logic. Properties include deadlock detection, program correctness (whether programs adhere to their AP specifications or not), and the ability of methods to run concurrently. We show that those properties are decidable and we present a complexity analysis of finding such proofs. We implemented our verification and analysis approach as the Alcove tool, which is available on-line.