Practical API Protocol Checking with Access Permissions

作者: Kevin Bierhoff , Nels E. Beckman , Jonathan Aldrich

DOI: 10.1007/978-3-642-03013-0_10

关键词:

摘要: Reusable APIs often define usage protocols. We previously developed a sound modular type system that checks compliance with typestate-based protocols while affording great deal of aliasing flexibility. also Plural, prototype tool embodies our approach as an automated static analysis and includes several extensions we found useful in practice. This paper evaluates along the following dimensions: (1) report on experience specifying relevant rules for large Java standard API approach. specify other identify recurring patterns. (2) summarize two case studies verifying third-party open-source code bases few false positives using tool. discuss how shortcomings can be addressed either refactorings or to itself. These results indicate used enforce real

参考文章(40)
Kevin Bierhoff, Jonathan Aldrich, Api protocol compliance in object-oriented software Carnegie Mellon University. ,(2009)
Bernhard Rumpe, Ian D. Simmonds, Haim Kilov, Behavioral Specifications of Businesses and Systems ,(2012)
Robert DeLine, Manuel Fähndrich, Typestates for Objects european conference on object-oriented programming. ,vol. 3086, pp. 465- 490 ,(2004) , 10.1007/978-3-540-24851-4_21
Gary T. Leavens, Albert L. Baker, Clyde Ruby, JML: A Notation for Detailed Design Behavioral Specifications of Businesses and Systems. pp. 175- 188 ,(1999) , 10.1007/978-1-4615-5229-1_12
Peter Thiemann, Markus Degen, Stefan Wehr, Tracking linear and affine resources with JAVA(X) european conference on object-oriented programming. pp. 550- 574 ,(2007) , 10.5555/2394758.2394795
John Boyland, Checking interference with fractional permissions static analysis symposium. pp. 55- 72 ,(2003) , 10.5555/1760267.1760273
John Tang Boyland, William Retert, Connecting effects and uniqueness with adoption symposium on principles of programming languages. ,vol. 40, pp. 283- 295 ,(2005) , 10.1145/1040305.1040329
Neelakantan R. Krishnaswami, Reasoning about iterators with separation logic Proceedings of the 2006 conference on Specification and verification of component-based systems - SAVCBS '06. pp. 83- 86 ,(2006) , 10.1145/1181195.1181213
Nels E. Beckman, Kevin Bierhoff, Jonathan Aldrich, Verifying correct usage of atomic blocks and typestate Proceedings of the 23rd ACM SIGPLAN conference on Object oriented programming systems languages and applications - OOPSLA '08. ,vol. 43, pp. 227- 244 ,(2008) , 10.1145/1449764.1449783
Robert DeLine, Manuel Fähndrich, Enforcing high-level protocols in low-level software Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation - PLDI '01. ,vol. 36, pp. 59- 69 ,(2001) , 10.1145/378795.378811