[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1370175.1370213acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
demonstration

PLURAL: checking protocol compliance under aliasing

Published: 10 May 2008 Publication History

Abstract

Enforcing compliance to API usage protocols is notoriously hard due to possible aliasing of objects through multiple references. In previous work we proposed a sound, modular approach to checking protocol compliance based on typestates that offers a great deal of flexibility in aliasing. In our approach, API protocols are defined based on typestates. Every reference is associated with a permission, and reasoning about permissions is appropriately conservative for the "degree" of possible aliasing admitted by a permission.
This paper describes Plural, a tool to automatically enforce typestate-based protocols using permissions in Java. API developers can specify protocols with simple annotations on methods and method parameters. A static flow analysis tracks permissions in code that uses specified APIs and issues warnings for possible protocol violations.

References

[1]
K. Bierhoff and J. Aldrich. Modular typestate checking of aliased objects. In ACM Conference on Object-Oriented Programming, Systems, Languages & Applications, pages 301--320, Oct. 2007.
[2]
J. Boyland. Checking interference with fractional permissions. In International Symposium on Static Analysis, pages 55--72. Springer, 2003.
[3]
R. DeLine and M. Fähndrich. Typestates for objects. In European Conference on Object-Oriented Programming, pages 465--490. Springer, 2004.
[4]
R. E. Strom and S. Yemini. Typestate: A programming language concept for enhancing software reliability. IEEE Transactions on Software Engineering, 12:157--171, 1986.

Cited By

View all
  • (2021)PLIERSACM Transactions on Computer-Human Interaction10.1145/345237928:4(1-53)Online publication date: 23-Jul-2021
  • (2020)ObsidianACM Transactions on Programming Languages and Systems10.1145/341751642:3(1-82)Online publication date: 25-Nov-2020
  • (2020)Towards generating thread-safe classes automaticallyProceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering10.1145/3324884.3416625(943-955)Online publication date: 21-Dec-2020
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE Companion '08: Companion of the 30th international conference on Software engineering
May 2008
214 pages
ISBN:9781605580791
DOI:10.1145/1370175
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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 10 May 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. aliasing
  2. annotations
  3. permissions
  4. typestate

Qualifiers

  • Demonstration

Conference

ICSE '08
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 11 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2021)PLIERSACM Transactions on Computer-Human Interaction10.1145/345237928:4(1-53)Online publication date: 23-Jul-2021
  • (2020)ObsidianACM Transactions on Programming Languages and Systems10.1145/341751642:3(1-82)Online publication date: 25-Nov-2020
  • (2020)Towards generating thread-safe classes automaticallyProceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering10.1145/3324884.3416625(943-955)Online publication date: 21-Dec-2020
  • (2019)Sip4JProceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2019.00111(1098-1101)Online publication date: 10-Nov-2019
  • (2019)Resource Sharing via Capability-Based Multiparty Session TypesIntegrated Formal Methods10.1007/978-3-030-34968-4_24(437-455)Online publication date: 22-Nov-2019
  • (2013)Enabledness-based program abstractions for behavior validationACM Transactions on Software Engineering and Methodology10.1145/2491509.249151922:3(1-46)Online publication date: 30-Jul-2013
  • (2013)Identifying message flow in distributed event-based systemsProceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering10.1145/2491411.2491462(367-377)Online publication date: 18-Aug-2013
  • (2012)TreeDroidProceedings of the 2012 ACM conference on Computer and communications security10.1145/2382196.2382290(894-905)Online publication date: 16-Oct-2012
  • (2012)Abstractions for validation in actionProceedings of the 12th international conference on Formal Methods for the Design of Computer, Communication, and Software Systems: formal methods for model-driven engineering10.1007/978-3-642-30982-3_6(192-218)Online publication date: 18-Jun-2012
  • (2011)Channels as Objects in Concurrent Object-Oriented ProgrammingElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.69.269(12-28)Online publication date: 18-Oct-2011
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media