Skip to main content

Abstracting Allocation

The New new Thing

  • Conference paper
Computer Science Logic (CSL 2006)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4207))

Included in the following conference series:

Abstract

We introduce a Floyd-Hoare-style framework for specification and verification of machine code programs, based on relational parametricity (rather than unary predicates) and using both step-indexing and a novel form of separation structure. This yields compositional, descriptive and extensional reasoning principles for many features of low-level sequential computation: independence, ownership transfer, unstructured control flow, first-class code pointers and address arithmetic. We demonstrate how to specify and verify the implementation of a simple memory manager and, independently, its clients in this style. The work has been fully machine-checked within the Coq proof assistant.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abadi, M., Cardelli, L., Curien, P.-L.: Formal parametric polymorphism. Theoretical Computer Science 121 (1993)

    Google Scholar 

  2. Abadi, M., Plotkin, G.D.: A PER model of polymorphism and recursive types. In: Proc. 5th IEEE Symposium on Logic in Computer Science (LICS), pp. 355–365. IEEE Computer Society Press, Los Alamitos (1990)

    Chapter  Google Scholar 

  3. Ahmed, A.: Step-indexed syntactic logical relations for recursive and quantified types. In: Sestoft, P. (ed.) ESOP 2006. LNCS, vol. 3924, pp. 69–83. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  4. Appel, A.: Foundational proof-carrying code. In: Proc. 16th IEEE Symposium on Logic in Computer Science (LICS) (2001)

    Google Scholar 

  5. Appel, A., Felty, A.: A semantic model of types and machine instructions for proof-carrying code. In: Proc. 27th ACM Symposium on Principles of Programming Languages (POPL) (2000)

    Google Scholar 

  6. Appel, A., McAllester, D.: An indexed model of recursive types for foundational proof-carrying code. ACM Transactions on Programming Languages and Systems (TOPLAS) 23(5) (2001)

    Google Scholar 

  7. Benton, N.: Simple relational correctness proofs for static analyses and program transformations. In: Proc. 31st ACM Symposium on Principles of Programming Languages (POPL) (January 2004), revised version available from: http://research.microsoft.com/~nick/publications.htm

  8. Benton, N.: A typed, compositional logic for a stack-based abstract machine. In: Yi, K. (ed.) APLAS 2005. LNCS, vol. 3780, pp. 364–380. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  9. Benton, N., Leperchey, B.: Relational reasoning in a nominal semantics for storage. In: Urzyczyn, P. (ed.) TLCA 2005. LNCS, vol. 3461, pp. 86–101. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  10. Chen, J., Wu, D., Appel, A.W., Fang, H.: A provably sound TAL for back-end optimization. In: Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) (2003)

    Google Scholar 

  11. Hamid, N.A., Shao, Z., Trifonov, V., Monnier, S., Ni, Z.: A syntactic approach to foundational proof-carrying code. Journal of Automated Reasoning 31(3-4) (2003)

    Google Scholar 

  12. Marti, N., Affeldt, R., Yonezawa, A.: Verification of the heap manager of an operating system using separation logic. In: Proc. 3rd Workshop on Semantics, Program Analysis and Computing Environments for Memory Management (SPACE) (2006)

    Google Scholar 

  13. Mijajlovic, I., Torp-Smith, N., O’Hearn, P.: Refinement and separation contexts. In: Lodaya, K., Mahajan, M. (eds.) FSTTCS 2004. LNCS, vol. 3328, pp. 421–433. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  14. Morrisett, G., Walker, D., Crary, K., Glew, N.: From System F to typed assembly language. ACM Transactions on Programming Languages and Systems (TOPLAS) 21(3) (1999)

    Google Scholar 

  15. Necula, G.: Proof-carrying code. In: Proc. 24th ACM Symposium on Principles of Programming Languages (POPL) (1997)

    Google Scholar 

  16. Ni, Z., Shao, Z.: Certified assembly programming with embedded code pointers. In: Proc. 33rd ACM Symposium on Principles of Programming Languages (POPL) (2006)

    Google Scholar 

  17. Pitts, A.M.: Parametric polymorphism and operational equivalence. Mathematical Structures in Computer Science 10 (2000)

    Google Scholar 

  18. Pitts, A.M., Stark, I.D.B.: Operational reasoning for functions with local state. In: Higher Order Operational Techniques in Semantics. CUP (1998)

    Google Scholar 

  19. Plotkin, G.D., Abadi, M.: A logic for parametric polymorphism. In: Bezem, M., Groote, J.F. (eds.) TLCA 1993. LNCS, vol. 664. Springer, Heidelberg (1993)

    Chapter  Google Scholar 

  20. Reddy, U.S., Yang, H.: Correctness of data representations involving heap data structures. Science of Computer Programming 50(1–3), 129–160 (2004)

    Article  MATH  MathSciNet  Google Scholar 

  21. Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Proc. 17th IEEE Symposium on Logic in Computer Science (LICS) (2002)

    Google Scholar 

  22. Vouillon, J., Mellies, P.-A.: Semantic types: A fresh look at the ideal model for types. In: Proc. 31st ACM Symposium on Principles of Programming Languages (POPL) (2004)

    Google Scholar 

  23. Yang, H.: Relational separation logic. Theoretical Computer Science(submitted, 2004)

    Google Scholar 

  24. Yu, D., Hamid, N.A., Shao, Z.: Building certified libraries for PCC: Dynamic storage allocation. Science of Computer Programming 50 (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Benton, N. (2006). Abstracting Allocation. In: Ésik, Z. (eds) Computer Science Logic. CSL 2006. Lecture Notes in Computer Science, vol 4207. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11874683_12

Download citation

  • DOI: https://doi.org/10.1007/11874683_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-45458-8

  • Online ISBN: 978-3-540-45459-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics