Abstract
The theory of Dynamic Frames has been invented to deal with the frame problem in the presence of encapsulation and pointers. It has proved more flexible and conceptually simpler than previous approaches that tackled the problem. It is now being actively used both for theoretical and for practical purposes related to the formal verification of program correctness. This paper presents the full theory of Dynamic Frames, together with its reasoning laws and exemplifies the use of these laws in proving correct several common design patterns. It also discusses the ongoing research on the topic.
Similar content being viewed by others
References
Banerjee A, Barnett M, Naumann D (2008) Boogie meets regions: a verification experience report. Technical Report MSR-TR-2008-79, Microsoft Research
Barnett M, DeLine R, Fähndrich M, Leino KRM, Schulte W (2004) Verification of object oriented programs with invariants. J Object Technol 3(6). http://www.jot.fm/issues/issue_2004_06/article2/article2.pdf
Barnett M, Leino KRM, Schulte W (2004) The Spec# specification language: an overview. In: Barthe G, Burdy L, Huisman M, Lanet J-L, Muntean T (eds) CASSIS’04. Lecture notes in computer science, vol 3362. Springer, Berlin, pp 49–69
Barnett M, Naumann D (2004) Friends need a bit more: maintaining invariants over shared state. In: Kozen D (ed) MPC’04. Lecture notes in computer science, vol 3125. Springer, Berlin, pp 54–84
Banerjee A, Naumann D, Rosenberg S (2008) Regional logic for local reasoning about global invariants. In: ECOOP’08. Lecture notes in computer science, vol 5142. Springer, Berlin, pp 387–411
Boyland J (2003) Checking interference with fractional permissions. In: Cousot R (ed) SA’03. Lecture notes in computer science, vol 2694. Springer, Berlin, pp 55–72
Brookes SD (1986) A fully abstract semantics and a proof system for an Algol-like language with sharing. In: Melton A (ed) MFPS’85. Lecture notes in computer science, vol 239. Springer, Berlin, pp 59–100
Detlefs DL, Leino KRM, Nelson G (1998) Wrestling with rep-exposure. Technical Report 156, DEC-SRC
Dietl W, Müller P (2005) Universes: lightweight ownership for JML. J Object Technol 4(8): 5–32
Harwood W, Cavalcanti A, Woodcock J (2008) A theory of pointers for the UTP. In: ICTAC’08. Lecture notes in computer science, vol 5160. Springer, Berlin, pp 141–155
Hehner ECR (1993) A Practical Theory of Programming. Texts and Monographs in Computer Science. Springer, Berlin
Hoare CAR, He J (1998) Unifying Theories of Programming. Prentice Hall Series in Computer Science. Prentice Hall, New Jersey
Hearn PO’, Reynolds J, Yang H (2001) Local reasoning about programs that alter data structures. In: CSL’01. Lecture notes in computer science, vol 2142. Springer, Berlin, pp 1–19
Hearn PO’, Yang H, Reynolds J (2004) Separation and information hiding. In: POPL’04, pp 268–280
Kassios IT (2006) Dynamic frames: support for framing, dependencies and sharing without restrictions. In: Misra J, Nipkow T, Sekerinski E (eds) FM’06. Lecture notes in computer science, vol 4085. Springer, Berlin, pp 268–283
Kassios IT (2006) A theory of object oriented refinement. PhD thesis, University of Toronto
Leino KRM (1998) Data groups: specifying the modification of extended state. In: OOPSLA’98. ACM, New York, pp 144–153
Leino KRM (2008) Specification and verification of object-oriented software. In: Marktoberdorf International Summer School 2008, Lecture Notes
Leino KRM, Müller P (2004) Object invariants in dynamic contexts. In: Odersky M (ed) ECOOP’04. Lecture notes in computer science, vol 3086. Springer, Berlin, pp 491–516
Leino KRM, Müller P (2006) A verification methodology for model fields. In: Sestoft P (ed) ESOP’06. Lecture notes in computer science, vol 3924. Springer, Berlin, pp 115–130
Leino KRM, Müller P (2009) A basis for verifying multi-threaded programs. In: Castagna G (ed) ESOP’09. Lecture notes in computer science, vol 5502. Springer, Berlin, pp 378–393
Leino KRM, Nelson G (2002) Data abstraction and information hiding. ACM Trans Program Lang Syst 24(5): 491–553
Leino KRM, Poetzsch-Heffter A, Zhou Y (2002) Using data groups to specify and check side effects. In: PLDI’02. ACM, New York, pp 246–257
McCarthy J, Hayes PJ (1969) Some philosophical problems from the standpoint of artificial intelligence. Mach Intell 4: 463–502
Müller P, Poetzsch-Heffter A, Leavens G (2003) Modular specification of frame properties in JML. Concurrency Comput Pract Experience 15: 117–154
Müller P (2002) Modular Specification and Verification of Object-Oriented Programs. Lecture notes in computer science, vol 2262. Springer, Berlin
Parkinson M, Bierman G (2005) Separation logic and abstraction. In: POPL’05, pp 247–258
Reynolds J (2002) Separation logic: a logic for shared mutable data structures. In: LICS’02. IEEE Computer Society, USA, pp 55–74
Smith MA, Gibbons J (2008) Unifying theories of locations. In: Butterfield A (ed) UTP’08
Smans J, Jacobs B, Piessens F (2008) Implicit dynamic frames. In: FTfJP’08
Smans J, Jacobs B, Piessens F (2008) VeriCool: an automatic verifier for a concurrent object-oriented language. In: FMOODS ’08. Lecture notes in computer science. Springer, Berlin, pp 220–239
Smans J, Jacobs B, Piessens F (2009) Implicit dynamic frames: Combining dynamic frames and separation logic. In: ECOOP’09
Author information
Authors and Affiliations
Corresponding author
Additional information
J.C.P. Woodcock
Rights and permissions
About this article
Cite this article
Kassios, I.T. The dynamic frames theory. Form Asp Comp 23, 267–288 (2011). https://doi.org/10.1007/s00165-010-0152-5
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-010-0152-5