A linear concurrent constraint approach for the automatic verification of access permissions

  • Authors:
  • Carlos Olarte;Elaine Pimentel;Camilo Rueda;Nestor Cataño

  • Affiliations:
  • Pontificia Universidad Javeriana-Cali, Cali, Colombia;Universidade Federal de Minas Gerais, Belo Horizonte, Brazil;Pontificia Universidad Javeriana-Cali, Cali, Colombia;University of Madeira, Madeira, Portugal

  • Venue:
  • Proceedings of the 14th symposium on Principles and practice of declarative programming
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.