Abstract
This paper aims to provide a better formalism for describing properties of linked data structures (e.g., lists, trees, graphs), as well as the intermediate states that arise when such structures are destructively updated. The paper defines a new logic that is suitable for these purposes (called L r, for “logic of reachability expressions”). We show that L r is decidable, and explain how L r relates to two previously defined structuredescription formalisms (“path matrices” and “static shape graphs”) by showing how an arbitrary shape descriptor from each of these formalisms can be translated into an L r formula.
Chapter PDF
Keywords
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
U. Assmann and M. Weinhardt. Interprocedural heap analysis for parallelizing imperative programs. In W. K. Giloi, S. Jähnichen, and B. D. Shriver, editors, Programming Models For Massively Parallel Computers, pages 74–82, Washington, DC, September 1993. IEEE Press.
E. Boerger, E. Graedel, and Y. Gurevich. The Classical Decision Problem. Springer-Verlag, 1996.
D.R. Chase, M. Wegman, and F. Zadeck. Analysis of pointers and structures. In SIGPLAN Conf. on Prog. Lang. Design and Impl., pages 296–310, New York, NY, 1990. ACM Press.
A. Deutsch. A storeless model for aliasing and its abstractions using finite representations of right-regular equivalence relations. In IEEE International Conference on Computer Languages, pages 2–13, Washington, DC, 1992. IEEE Press.
A. Deutsch. Interprocedural may-alias analysis for pointers: Beyond k-limiting. In SIGPLAN Conf. on Prog. Lang. Design and Impl., pages 230–241, New York, NY, 1994. ACM Press.
Pascal Fradet and Daniel LeMetayer. Shape types. In Symp. on Princ. of Prog. Lang., New York, NY, 1997. ACM Press.
R Ghiya and L. Hendren. Putting pointer analysis to work. In Symp. on Princ. of Prog. Lang., New York, NY, 1998. ACM Press.
R. Ghiya and L.J. Hendren. Connection analysis: A practical interprocedural heap analysis for C. In Proc. of the 8th Int. Workshop on Lang. and Comp. for Par. Comp., number 1033 in Lec. Notes in Comp. Sci., pages 515–534, Columbus, Ohio, August 1995. Springer-Verlag.
L. Hendren. Parallelizing Programs with Recursive Data Structures. PhD thesis, Cornell Univ., Ithaca, NY, Jan 1990.
L. Hendren, J. Hummel, and A. Nicolau. Abstractions for recursive pointer data structures: Improving the analysis and the transformation of imperative programs. In SIGPLAN Conf. on Prog. Lang. Design and Impl., pages 249–260, New York, NY, June 1992. ACM Press.
L. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Trans. on Par. and Dist. Syst., 1(1):35–47, January 1990.
S. Horwitz, P. Pfeifer, and T. Reps. Dependence analysis for pointer variables. In SIGPLAN Conf. on Prog. Lang. Design and Impl., pages 28–40, New York, NY, 1989. ACM Press.
J.L. Jensen, M.E. Joergensen, N. UKlarlund, and M.I. Schwartzbach. Automatic verification of pointer programs using monadic second-order logic. In SIGPLAN Conf. on Prog. Lang. Design and Impl., 1997.
N.D. Jones and S.S. Muchnick. Flow analysis and optimization of Lisp-like structures. In S.S. Muchnick and N.D. Jones, editors, Program Flow Analysis: Theory and Applications, chapter 4, pages 102–131. Prentice-Hall, Englewood Cliffs, NJ, 1981.
N.D. Jones and S.S. Muchnick. A flexible approach to interprocedural data flow analysis and programs with recursive data structures. In Symp. on Princ. of Prog. Lang, pages 66–74, New York, NY, 1982. ACM Press.
N. Klarlund and M. Schwartzbach. Graph types. In Symp. on Princ. of Prog. Lang., New York, NY, January 1993. ACM Press.
J.R. Larus and P.N. Hilfnger. Detecting conflicts between structure accesses. In SIGPLAN Conf. on Prog. Lang. Design and Impl., pages 21–34, New York, NY, 1988. ACM Press.
C.-K. Luk and T.C. Mowry. Compiler-based prefetching for recursive data structures. In Proceedings of the Seventh International Conference on Architectural Support for Programming Languages and Operating Systems, pages 222–233, October 1996.
J. Plevyak, A.A. Chien, and V. Karamcheti. Analysis of dynamic structures for efficient parallel execution. In U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, editors, Languages and Compilers for Parallel Computing, volume 768 of Lec. Notes in Comp. Sci., pages 37–57, Portland, OR, August 1993. Springer-Verlag.
M. Sagiv, T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. Tech. Rep. TR-1383, Comp. Sci. Dept. Univ. of Wisconsin, Madison, WI, July 1998. Available at “http://www.cs.wisc.edu/wpis/papers/parametric.ps”.
M. Sagiv, T. Reps, and R. Wilhelm. Solving shape-analysis problems in languages with destructive updating. Trans. on Prog. Lang. and Syst., 20(1):1–50, January 1998.
M. Sagiv, T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. In Symp. on Princ. of Prog. Lang., 1999. Available at “http://www.cs.wisc.edu/wpis/papers/popl99.ps”.
J. Stransky. A lattice for abstract interpretation of dynamic (Lisp-like) structures. Inf. and Comp., 101(1):70–102, Nov. 1992.
R.E. Tarjan. Fast algorithms for solving path problems. J. ACM, 28(3):594–614,1981.
R.E. Tarjan. A unified approach to path problems. J. ACM, 28(3):577–593, 1981.
J.W. Thatcher and J.B. Wright. Generalized finite automata with an application to a decision problem of second order logic. Math. Syst. Theory, 2:57–82, 1968.
E. Y.-B. Wang. Analysis of Recursive Types in an Imperative Language. PhD thesis, Univ. of Calif., Berkeley, CA, 1994.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Benedikt, M., Reps, T., Sagiv, M. (1999). A Decidable Logic for Describing Linked Data Structures. In: Swierstra, S.D. (eds) Programming Languages and Systems. ESOP 1999. Lecture Notes in Computer Science, vol 1576. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49099-X_2
Download citation
DOI: https://doi.org/10.1007/3-540-49099-X_2
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65699-9
Online ISBN: 978-3-540-49099-9
eBook Packages: Springer Book Archive