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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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.
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.
A. Cohen and J.-F. Collard. Applicability of algebraic transductions to data-flow analysis. In Proc. of PACT’98, Paris, France, October 1998.
Albert Cohen. Program Analysis and Transformation: From the Polytope Model to Formal Languages. PhD thesis, University of Versailles, 1999.
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.
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.
Paul Feautrier. A parallelization framework for recursive programs. In Proceedings of EuroPar, volume LNCS 1470, pages 470–479, 1998.
P. Fradet and D. Le Metayer. Shape types. In Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 1997.
Michael Frohlich and Mattias Werner. The davinci graph visualisation tool. http://www.informatik.uni-bremen.de/daVinci/.
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.
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.
Derek Holt. Package for knuth-bendix in monoids, and automatic groups. http://www.maths.warwick.ac.uk/ dfh/.
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.
J. L. Ross and M. Sagiv. Building a bridge between pointer aliases and program dependences. Nordic Journal of Computing, (8):361–386, 1998.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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