Skip to main content

Safe Approximation of Data Dependencies in Pointer-Based Structures

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2017))

Abstract

This paper describes a new approach to the analysis of dependencies in complex, pointer-based data structures. Structural information is provided by the programmer in the form of two-variable finite state automata (2FSA). Our method extracts data dependencies. For restricted forms of recursion, the data dependencies can be exact; however in general, we produce approximate, yet safe (i.e. overestimates dependencies) information. The analysis method has been automated and results are presented in this paper.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. D. K. Arvind and Tim Lewis. Dependency analysis of recursive data structures using automatic groups. In Siddhartha Chatterjee et al, editor, Languages and Compilers for Parallel Computing, 11th International Workshop LCPC’98, Lecture Notes in Computer Science, Chapel Hill, North Carolina, USA, August 1998. Springer-Verlag.

    Google Scholar 

  2. Michael Benedikt, Thomas Reps, and Mooly Sagiv. A decidable logic for describing linked data structures. In S. D. Illinois Swierstra, editor, ESOP’ 99: European Symposium on Programming, Lecture Notes in Computer Science, volume 1576, pages 2–19, March 1999.

    Google Scholar 

  3. A. Cohen and J.-F. Collard. Applicability of algebraic transductions to data-flow analysis. In Proc. of PACT’98, Paris, France, October 1998.

    Google Scholar 

  4. Albert Cohen. Program Analysis and Transformation: From the Polytope Model to Formal Languages. PhD thesis, University of Versailles, 1999.

    Google Scholar 

  5. A. Deutsch. Interprocedural may-alias analysis for pointers: Beyond klimiting. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 230–241, New York, NY, 1994. ACM Press.

    Google Scholar 

  6. David B. A. Epstein, J. W. Cannon, D. E. Holt, S. V. F. Levy, M. S. Paterson, and W. P. Thurston. Word Processing in Groups. Jones and Bartlett, 1992.

    Google Scholar 

  7. Paul Feautrier. A parallelization framework for recursive programs. In Proceedings of EuroPar, volume LNCS 1470, pages 470–479, 1998.

    Google Scholar 

  8. P. Fradet and D. Le Metayer. Shape types. In Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 1997.

    Google Scholar 

  9. Michael Frohlich and Mattias Werner. The davinci graph visualisation tool. http://www.informatik.uni-bremen.de/daVinci/.

  10. Joseph Hummel, Laurie J. Hendren, and Alexandru Nicolau. A general data dependence test for dynamic pointer-based data structures. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 100–104, June 1994.

    Google Scholar 

  11. Joseph Hummel, Laurie J Hendren, and Alexandru Nicolau. A language for conveying the aliasing properties of dynamic, pointer-based data structures. In Proceedings of the 8th International Parallel Processing Symposium, April 1994.

    Google Scholar 

  12. Derek Holt. Package for knuth-bendix in monoids, and automatic groups. http://www.maths.warwick.ac.uk/ dfh/.

  13. Nils Klarlund and Michael I. Schwartzbach. Graph types. In Proceedings of the ACM 20th Symposium on Principles of Programming Languages, pages 196–205, January 1993.

    Google Scholar 

  14. J. L. Ross and M. Sagiv. Building a bridge between pointer aliases and program dependences. Nordic Journal of Computing, (8):361–386, 1998.

    MathSciNet  Google Scholar 

  15. Michael I. Schwartzbach, Jakob L. Jensen, Michael E. Jorgensen, and Nils Klarlund. Automatic verification of pointer programs using monadic second order logic. In Proceedings of the Conference on Programming Language design and implementation. ACM, 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Arvind, D., Lewis, T. (2001). Safe Approximation of Data Dependencies in Pointer-Based Structures. In: Midkiff, S.P., et al. Languages and Compilers for Parallel Computing. LCPC 2000. Lecture Notes in Computer Science, vol 2017. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45574-4_20

Download citation

  • DOI: https://doi.org/10.1007/3-540-45574-4_20

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42862-6

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics