Advertisement

Abstract

After some general remarks about program verification, we introduce separation logic, a novel extension of Hoare logic that can strengthen the applicability and scalability of program verification for imperative programs that use shared mutable data structures or shared-memory concurrency.

Keywords

Separation Logic Conference Record Imperative Program Hoare Logic Local Reasoning 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    Reynolds, J.C.: Intuitionistic reasoning about shared mutable data structure. In: Davies, J., Roscoe, B., Woodcock, J. (eds.) Millennial Perspectives in Computer Science, Houndsmill, Hampshire, Palgrave, pp. 303–321 (2000)Google Scholar
  2. 2.
    Ishtiaq, S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: Conference Record of POPL 2001: The 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 14–26. ACM, New York (2001)Google Scholar
  3. 3.
    O’Hearn, P.W., Reynolds, J.C., Yang, H.: Local reasoning about programs that alter data structures. In: Fribourg, L. (ed.) CSL 2001 and EACSL 2001. LNCS, vol. 2142, Springer, Heidelberg (2001)Google Scholar
  4. 4.
    Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Proceedings Seventeenth Annual IEEE Symposium on Logic in Computer Science, Los Alamitos, California, pp. 55–74. IEEE Computer Society, Los Alamitos (2002)CrossRefGoogle Scholar
  5. 5.
    Yang, H.: An example of local reasoning in BI pointer logic: The Schorr-Waite graph marking algorithm. In: Henglein, F., Hughes, J., Makholm, H., Niss, H. (eds.) SPACE 2001: Informal Proceedings of Workshop on Semantics, Program Analysis and Computing Environments for Memory Management, IT University of Copenhagen, pp. 41–68 (2001)Google Scholar
  6. 6.
    Yang, H.: Local Reasoning for Stateful Programs. Ph. D. dissertation, University of Illinois, Urbana-Champaign, Illinois (2001)Google Scholar
  7. 7.
    Birkedal, L., Torp-Smith, N., Reynolds, J.C.: Local reasoning about a copying garbage collector. In: Conference Record of POPL 2004: The 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 220–231. ACM Press, New York (2004)Google Scholar
  8. 8.
    Calcagno, C., Yang, H., O’Hearn, P.W.: Computability and complexity results for a spatial assertion language for data structures. In: Hariharan, R., Mukund, M., Vinay, V. (eds.) FSTTCS 2001. LNCS, vol. 2245, pp. 108–119. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  9. 9.
    Berdine, J., Calcagno, C., O’Hearn, P.W.: A decidable fragment of separation logic. In: Lodaya, K., Mahajan, M. (eds.) FSTTCS 2004. LNCS, vol. 3328, pp. 97–109. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  10. 10.
    O’Hearn, P.W., Yang, H., Reynolds, J.C.: Separation and information hiding. In: Conference Record of POPL 2004: The 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 268–280. ACM Press, New York (2004)Google Scholar
  11. 11.
    Birkedal, L., Torp-Smith, N., Yang, H.: Semantics of separation-logic typing and higher-order frame rules. In: Proceedings Twentieth Annual IEEE Symposium on Logic in Computer Science, Los Alamitos, California, IEEE Computer Society, Los Alamitos (2005)Google Scholar
  12. 12.
    Biering, B., Birkedal, L., Torp-Smith, N.: Bi-hyperdoctrines and higher order separation logic. In: Sagiv, M. (ed.) ESOP 2005. LNCS, vol. 3444, pp. 233–247. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  13. 13.
    Mijajlović, I., Torp-Smith, N.: Refinement in a separation context. In: SPACE 2004: Informal Proceedings of Second Workshop on Semantics, Program Analysis and Computing Environments for Memory Management (2004)Google Scholar
  14. 14.
    Mijajlović, I., Torp-Smith, N., O’Hearn, P.W.: Refinement and separation contexts. In: Lodaya, K., Mahajan, M. (eds.) FSTTCS 2004. LNCS, vol. 3328, pp. 421–433. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  15. 15.
    O’Hearn, P.W.: Resources, concurrency and local reasoning. In: Gardner, P., Yoshida, N. (eds.) CONCUR 2004. LNCS, vol. 3170, pp. 49–67. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  16. 16.
    Brookes, S.D.: A semantics for concurrent separation logic. In: Gardner, P., Yoshida, N. (eds.) CONCUR 2004. LNCS, vol. 3170, pp. 16–34. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  17. 17.
    Bornat, R., Calcagno, C., O’Hearn, P.W., Parkinson, M.: Permission accounting in separation logic. In: Conference Record of POPL 2005: The 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 259–270. ACM Press, New York (2005)Google Scholar
  18. 18.
    Yu, D., Hamid, N.A., Shao, Z.: Building certified libraries for PCC: Dynamic storage allocation. Science of Computer Programming 50, 101–127 (2004)MathSciNetCrossRefzbMATHGoogle Scholar
  19. 19.
    Calcagno, C., O’Hearn, P.W., Bornat, R.: Program logic and equivalence in the presence of garbage collection. Theoretical Computer Science 298, 557–581 (2003)MathSciNetCrossRefzbMATHGoogle Scholar
  20. 20.
    Ni, Z., Shao, Z.: Certified assembly programming with embedded code pointers. In: Research Report YALEU/CS/TR-1294, Yale University, New Haven, Connecticut (2005), http://flint.cs.yale.edu/flint/publications/xcap.html
  21. 21.
    Walker, D., Morrisett, G.: Alias types for recursive data structures. In: Harper, R. (ed.) TIC 2000. LNCS, vol. 2071, pp. 177–206. Springer, Heidelberg (2001)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • John C. Reynolds
    • 1
  1. 1.Computer Science DepartmentCarnegie Mellon UniversityUSA

Personalised recommendations