skip to main content
article
Open Access

The undecidability of aliasing

Published:01 September 1994Publication History
Skip Abstract Section

Abstract

Alias analysis is a prerequisite for performing most of the common program analyses such as reaching-definitions analysis or live-variables analysis. Landi [1992] recently established that it is impossible to compute statically precise alias information—either may-alias or must-alias—in languages with if statements, loops, dynamic storage, and recursive data structures: more precisely, he showed that the may-alias relation is not recursive, while the must-alias relation is not even recursively enumerable. This article presents simpler proofs of the same results.

References

  1. CHOI, J.-D., BURKE, M. G. AND CARINI, P. 1993. Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. In Conference Record of the 20th ACM Symposium on Principles of Programming Languages (Charleston, S. Carolina). ACM, New York, 232-245. Google ScholarGoogle Scholar
  2. HOPCROFT, J. E. AND ULLMAN, J.D. 1979. Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, Reading, Mass. Google ScholarGoogle Scholar
  3. KAM, J. B. AND ULLMAN, Z. D. 1977. Monotone data flow analysis frameworks. In Acta Informatica 7, 305-317.Google ScholarGoogle Scholar
  4. LANDI, W. 1992. Undecidability of static analysis. 1992. Lett. Program. Lang. Syst. 1, 4 (Dec.). Google ScholarGoogle Scholar
  5. LANDI, W. 1991. Interprocedural aliasing in the presence of pointers. Ph.D. thesis, Dept. of Computer Science, Rutgers Univ., New Brunswick, N.J. Google ScholarGoogle Scholar
  6. LANDI, W. AND RYDER, B.G. 1992. A safe approximate algorithm for pointer-induced aliasing. SIGPLAN Not. 27, 7 (July), 235-248. Google ScholarGoogle Scholar
  7. LARUS, J.R. 1989. Restructuring symbolic programs for concurrent execution on multiprocessors. Ph.D. thesis, Univ. of California, Berkeley, Calif. (May). Google ScholarGoogle Scholar
  8. LARUS, J. R. AND HILFINGER, P. N.1988. Detecting conflicts between structure accesses. SIGPLAN Not. 23, 7 (July), 21-34. Google ScholarGoogle Scholar
  9. MYERS, E. 1981. A precise inter-procedural data flow algorithm. In Conference Record of the 8th ACM Symposium on Principles of Programming Languages (Williamsburg, Va., Jan. 26-28). ACM, New York. Google ScholarGoogle Scholar
  10. PFEIFFER, P. 1991. Dependence-based representations for programs with reference variables. Ph.D. dissertation and Tech. Rep. TR-1037, Computer Sciences Dept., Univ. of Wisconsin, Madison, Wis. (Aug.). Google ScholarGoogle Scholar

Index Terms

  1. The undecidability of aliasing

                  Recommendations

                  Reviews

                  Danny B. Lange

                  Common static program analyses such as reaching-definition analysis and live-variables analysis require alias information. Two names (L-valued expressions) are said to alias each other at a particular point during program execution if both may, or must, have the same value. Landi [1] recently established that “may” and “must” alias problems are undecidable for languages that permit “if” statements, loops, dynamic storage, and recursive data structures. Ramalingam presents a simpler and very elegant proof of the same result. The approach taken is to reduce Post's Correspondence Problem (PCP), which is undecidable, to the “may” and “must” alias problems. The proof is supported by a program example in C. I f you are working in the field of static program analysis, be sure to take a look at this short and easy-to-read paper.

                  Access critical reviews of Computing literature here

                  Become a reviewer for Computing Reviews.

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in

                  Full Access

                  • Published in

                    cover image ACM Transactions on Programming Languages and Systems
                    ACM Transactions on Programming Languages and Systems  Volume 16, Issue 5
                    Sept. 1994
                    267 pages
                    ISSN:0164-0925
                    EISSN:1558-4593
                    DOI:10.1145/186025
                    Issue’s Table of Contents

                    Copyright © 1994 ACM

                    Publisher

                    Association for Computing Machinery

                    New York, NY, United States

                    Publication History

                    • Published: 1 September 1994
                    Published in toplas Volume 16, Issue 5

                    Permissions

                    Request permissions about this article.

                    Request Permissions

                    Check for updates

                    Qualifiers

                    • article

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader