Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2370776.2370802acmotherconferencesArticle/Chapter ViewAbstractPublication PagesppdpConference Proceedingsconference-collections
research-article

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

Published: 19 September 2012 Publication History

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.

References

[1]
J.-R. Abrial, M. J. Butler, S. Hallerstede, T. S. Hoang, F. Mehta, and L. Voisin. Rodin: an open toolset for modelling and reasoning in eventb. STTT, 12(6):447--466, 2010.
[2]
N. E. Beckman, K. Bierhoff, and J. Aldrich. Verifying correct usage of atomic blocks and typestate. In G. E. Harris, editor, OOPSLA, pages 227--244. ACM, 2008.
[3]
K. Bierhoff and J. Aldrich. Modular typestate checking of aliased objects. In R. P. Gabriel, D. F. Bacon, C. V. Lopes, and G. L. S. Jr., editors, OOPSLA, pages 301--320. ACM, 2007.
[4]
J. Boyland. Checking interference with fractional permissions. In R. Cousot, editor, SAS, volume 2694 of Lecture Notes in Computer Science, pages 55--72. Springer, 2003.
[5]
J. Boyland, J. Noble, and W. Retert. Capabilities for sharing: A generalisation of uniqueness and read-only. In J. L. Knudsen, editor, ECOOP, volume 2072 of Lecture Notes in Computer Science, pages 2--27. Springer, 2001.
[6]
N. Cataño and I. Ahmed. Lightweight verification of a multi-task threaded server: A case study with the plural tool. In G. Salaün and B. Schätz, editors, FMICS, volume 6959 of Lecture Notes in Computer Science, pages 6--20. Springer, 2011.
[7]
F. Fages, P. Ruet, and S. Soliman. Linear concurrent constraint programming: Operational and phase semantics. Inf. Comput., 165(1): 14--41, 2001.
[8]
J.-Y. Girard. Linear logic. Theor. Comput. Sci., 50:1--102, 1987.
[9]
J. S. Hodas and D. Miller. Logic programming in a fragment of intuitionistic linear logic. Inf. Comput., 110(2):327--365, 1994.
[10]
R. Jagadeesan, W. Marrero, C. Pitcher, and V. A. Saraswat. Timed constraint programming: a declarative approach to usage control. In P. Barahona and A. P. Felty, editors, PPDP, pages 164--175. ACM, 2005.
[11]
K. R. M. Leino. Verifying concurrent programs with Chalice. In G. Barthe and M. V. Hermenegildo, editors, VMCAI, volume 5944 of Lecture Notes in Computer Science, page 2. Springer, 2010.
[12]
C. Liang and D.Miller. A focused approach to combining logics. Ann. Pure Appl. Logic, 162(9):679--697, 2011.
[13]
P. Lincoln, J. C. Mitchell, A. Scedrov, and N. Shankar. Decision problems for propositional linear logic. Ann. Pure Appl. Logic, 56 (1--3):239--311, 1992.
[14]
D. Miller and G. Nadathur. Programming with Higher-Order Logic. Cambridge University Press, 2012.
[15]
K. Naden, R. Bocchino, J. Aldrich, and K. Bierhoff. A type system for borrowing permissions. In J. Field and M. Hicks, editors, POPL, pages 557--570. ACM, 2012.
[16]
E. Pimentel and D. Miller. On the specification of sequent systems. In G. Sutcliffe and A. Voronkov, editors, LPAR, volume 3835 of Lecture Notes in Computer Science, pages 352--366. Springer, 2005.
[17]
V. A. Saraswat, M. C. Rinard, and P. Panangaden. Semantic foundations of concurrent constraint programming. In D. S. Wise, editor, POPL, pages 333--352. ACM Press, 1991.
[18]
S. Stork, P. Marques, and J. Aldrich. Concurrency by default using permissions to express dataflow in stateful programs. In S. Arora and G. T. Leavens, editors, OOPSLA Companion, pages 933--940. ACM, 2009.
[19]
J. Sunshine, K. Naden, S. Stork, J. Aldrich, and É. Tanter. First-class state change in plaid. In C. V. Lopes and K. Fisher, editors, OOPSLA, pages 713--732. ACM, 2011.

Cited By

View all
  • (2018)A concurrent constraint programming interpretation of access permissionsTheory and Practice of Logic Programming10.1017/S147106841800001718:2(252-295)Online publication date: 10-Apr-2018
  • (2013)Models and emerging trends of concurrent constraint programmingConstraints10.1007/s10601-013-9145-318:4(535-578)Online publication date: 1-Oct-2013

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
PPDP '12: Proceedings of the 14th symposium on Principles and practice of declarative programming
September 2012
226 pages
ISBN:9781450315227
DOI:10.1145/2370776
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • Kuleuven Belgium: Kuleuven Belgium

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 September 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. access permissions
  2. concurrent constraint programming
  3. linear logic
  4. verification

Qualifiers

  • Research-article

Conference

PPDP'12
Sponsor:
  • Kuleuven Belgium

Acceptance Rates

Overall Acceptance Rate 230 of 486 submissions, 47%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 06 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2018)A concurrent constraint programming interpretation of access permissionsTheory and Practice of Logic Programming10.1017/S147106841800001718:2(252-295)Online publication date: 10-Apr-2018
  • (2013)Models and emerging trends of concurrent constraint programmingConstraints10.1007/s10601-013-9145-318:4(535-578)Online publication date: 1-Oct-2013

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media