Enhancing modular OO verification with separation logic

作者: Wei-Ngan Chin , Cristina David , Huu Hai Nguyen , Shengchao Qin

DOI: 10.1145/1328438.1328452

关键词: Class invariantProgramming languageMethod overridingModular programmingComputer scienceSeparation logicModular designBoolean algebraObject-oriented programming

摘要: Conventional specifications for object-oriented (OO) programs must adhere to behavioral subtyping in support of class inheritance and method overriding. However, this requirement inherently weakens the overridden methods superclasses, leading imprecision during program reasoning. To address this, we advocate a fresh approach OO verification that focuses on distinction relation between cater calls with static dispatching from those dynamic dispatching. We formulate novel specification subsumption can avoid code re-verification, where possible. Using predicate mechanism, propose flexible scheme supporting invariant lossless casting. Our aim is lay foundation practical system precise, concise modular sequential programs. exploit separation logic formalism achieve this.

参考文章(35)
Pierre America, Designing an Object-Oriented Programming Language with Behavioural Subtyping Proceedings of the REX School/Workshop on Foundations of Object-Oriented Languages. pp. 60- 90 ,(1990) , 10.1007/BFB0019440
Huu Hai Nguyen, Cristina David, Shengchao Qin, Wei-Ngan Chin, Automated Verification of Shape and Size Properties Via Separation Logic Lecture Notes in Computer Science. pp. 251- 266 ,(2007) , 10.1007/978-3-540-69738-1_18
K. Rustan M. Leino, Peter Müller, Object Invariants in Dynamic Contexts european conference on object-oriented programming. ,vol. 3086, pp. 491- 515 ,(2004) , 10.1007/978-3-540-24851-4_22
Corina S. Păsăreanu, Willem Visser, Verification of Java Programs Using Symbolic Execution and Invariant Generation international workshop on model checking software. pp. 164- 181 ,(2004) , 10.1007/978-3-540-24732-6_13
David R. Cok, Joseph R. Kiniry, ESC/Java2: Uniting ESC/Java and JML Construction and Analysis of Safe, Secure, and Interoperable Smart Devices. pp. 108- 128 ,(2005) , 10.1007/978-3-540-30569-9_6
Mike Barnett, K. Rustan M. Leino, Wolfram Schulte, The Spec# Programming System: An Overview Construction and Analysis of Safe, Secure, and Interoperable Smart Devices. ,vol. 3362, pp. 49- 69 ,(2005) , 10.1007/978-3-540-30569-9_3
Samin Ishtiaq, Peter W. O'Hearn, BI as an assertion language for mutable data structures ACM SIGPLAN Notices. ,vol. 46, pp. 84- 96 ,(2011) , 10.1145/1988042.1988050
Ronald Middelkoop, Cornelis Huizing, Ruurd Kuiper, Erik J. Luit, Invariants for Non-Hierarchical Object Structures Electronic Notes in Theoretical Computer Science. ,vol. 195, pp. 211- 229 ,(2008) , 10.1016/J.ENTCS.2007.08.034