Title : 
Towards imperative modules: reasoning about invariants and sharing of mutable state
         
        
            Author : 
Naumann, David A. ; Barnett, Mike
         
        
            Author_Institution : 
Stevens Inst. of Technol., Hoboken, NJ, USA
         
        
        
        
        
        
            Abstract : 
Imperative and object-oriented programs make ubiquitous use of shared mutable objects. Updating a shared object can and often does transgress a boundary that was supposed to be established using static constructs such as a class with private fields. This paper shows how auxiliary fields can be used to express two state-dependent encapsulation disciplines: ownership, a kind of separation, and local co-dependence, a kind of sharing. A methodology is given for specification and modular verification of encapsulated object invariants and shown sound for a class-based language.
         
        
            Keywords : 
data encapsulation; formal specification; formal verification; object-oriented programming; auxiliary fields; class-based language; encapsulated object invariants; imperative modules; imperative programs; modular verification; mutable state; object-oriented programs; shared mutable objects; state-dependent encapsulation; static constructs; Computer science; Data structures; Encapsulation; Interference; Logic; Object oriented modeling; Programming profession; Protection; Reasoning about programs;
         
        
        
        
            Conference_Titel : 
Logic in Computer Science, 2004. Proceedings of the 19th Annual IEEE Symposium on
         
        
        
            Print_ISBN : 
0-7695-2192-4
         
        
        
            DOI : 
10.1109/LICS.2004.1319626