skip to main content
10.1145/1040305.1040332acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article

Precise interprocedural analysis using random interpretation

Published: 12 January 2005 Publication History

Abstract

We describe a unified framework for random interpretation that generalizes previous randomized intraprocedural analyses, and also extends naturally to efficient interprocedural analyses. There is no such natural extension known for deterministic algorithms. We present a general technique for extending any intraprocedural random interpreter to perform a context-sensitive interprocedural analysis with only polynomial increase in running time. This technique involves computing random summaries of procedures, which are complete and probabilistically sound.As an instantiation of this general technique, we obtain the first polynomial-time randomized algorithm that discovers all linear relationships interprocedurally in a linear program. We also obtain the first polynomial-time randomized algorithm for precise interprocedural value numbering over a program with unary uninterpreted functions.We present experimental evidence that quantifies the precision and relative speed of the analysis for discovering linear relationships along two dimensions: intraprocedural vs. interprocedural, and deterministic vs. randomized. We also present results that show the variation of the error probability in the randomized analysis with changes in algorithm parameters. These results suggest that the error probability is much lower than the existing conservative theoretical bounds.

References

[1]
P. Briggs, K. D. Cooper, and L. T. Simpson. Value numbering. Software Practice and Experience, 27(6):701--724, June 1997.]]
[2]
P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings of the 4th ACM Symposium on Principles of Programming Languages, pages 234--252, 1977.]]
[3]
R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. Efficiently computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems, 13(4):451--490, Oct. 1990.]]
[4]
J. Y. Gil and A. Itai. The complexity of type analysis of object oriented programs. Lecture Notes in Computer Science, 1445:601--634, 1998.]]
[5]
S. Gulwani and G. C. Necula. Discovering affine equalities using random interpretation. In 30th ACM Symposium on Principles of Programming Languages, pages 74--84. ACM, Jan. 2003.]]
[6]
S. Gulwani and G. C. Necula. Global value numbering using random interpretation. In 31st ACM Symposium on Principles of Programming Languages, pages 342--352, Jan. 2004.]]
[7]
S. Gulwani and G. C. Necula. A polynomial-time algorithm for global value numbering. In 11th Static Analysis Symposium, volume 3148 of Lecture Notes in Computer Science. Springer, 2004.]]
[8]
S. Gulwani and G. C. Necula. Precise interprocedural analysis using random interpretation. Technical Report UCB//CSD-04-1353, University of California, Berkeley, 2004.]]
[9]
M. Karr. Affine relationships among variables of a program. In Acta Informatica, pages 133--151. Springer, 1976.]]
[10]
G. A. Kildall. A unified approach to global program optimization. In 1st ACM Symposium on Principles of Programming Language, pages 194--206. ACM, Oct. 1973.]]
[11]
W. Landi. Undecidability of static analysis. ACM Letters on Programming Languages and Systems, 1(4):323--337, Dec. 1992.]]
[12]
R. Motwani and P. Raghavan. Randomized Algorithms. Cambridge University Press, 1995.]]
[13]
S. S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco, 2000.]]
[14]
M. Müller-Olm and H. Seidl. Precise interprocedural analysis through linear algebra. In 31st Annual ACM Symposium on Principles of Programming Languages, pages 330--341. ACM, Jan. 2004.]]
[15]
T. Reps. On the sequential nature of interprocedural program-analysis problems. Acta Informatica, 33(8):739--757, Nov. 1996.]]
[16]
T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In 22nd ACM Symposium on POPL, pages 49--61. ACM, 1995.]]
[17]
B. K. Rosen, M. N. Wegman, and F. K. Zadeck. Global value numbers and redundant computations. In 15th ACM Symposium on Principles of Programming Languages, pages 12--27, 1988.]]
[18]
O. Rüthing, J. Knoop, and B. Steffen. Detecting equalities of variables: Combining efficiency with precision. In Static Analysis Symposium, volume 1694 of Lecture Notes in Computer Science, pages 232--247. Springer, 1999.]]
[19]
M. Sagiv, T. Reps, and S. Horwitz. Precise interprocedural dataflow analysis with applications to constant propagation. Theoretical Computer Science, 167(1--2):131--170, 30~Oct. 1996.]]
[20]
M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In S.S. Muchnick and N.D. Jones, editors. Program Flow Analysis: Theory and Applications, pages 189--234, 1981.]]

Cited By

View all
  • (2018)Practical detection of concurrency issues at coding timeProceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3213846.3213853(221-231)Online publication date: 12-Jul-2018
  • (2016)Transforming spreadsheet data types using examplesACM SIGPLAN Notices10.1145/2914770.283766851:1(343-356)Online publication date: 11-Jan-2016
  • (2016)Understanding the exception handling strategies of Java librariesProceedings of the 13th International Conference on Mining Software Repositories10.1145/2901739.2901757(212-222)Online publication date: 14-May-2016
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 2005
402 pages
ISBN:158113830X
DOI:10.1145/1040305
  • General Chair:
  • Jens Palsberg,
  • Program Chair:
  • Martín Abadi
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 40, Issue 1
    Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
    January 2005
    391 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1047659
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 January 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. interprocedural analysis
  2. interprocedural value numbering
  3. linear relationships
  4. random interpretation
  5. randomized algorithm
  6. uninterpreted functions

Qualifiers

  • Article

Conference

POPL05

Acceptance Rates

Overall Acceptance Rate 860 of 4,328 submissions, 20%

Upcoming Conference

POPL '26

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2018)Practical detection of concurrency issues at coding timeProceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3213846.3213853(221-231)Online publication date: 12-Jul-2018
  • (2016)Transforming spreadsheet data types using examplesACM SIGPLAN Notices10.1145/2914770.283766851:1(343-356)Online publication date: 11-Jan-2016
  • (2016)Understanding the exception handling strategies of Java librariesProceedings of the 13th International Conference on Mining Software Repositories10.1145/2901739.2901757(212-222)Online publication date: 14-May-2016
  • (2016)Integrated analysis of exception flows and handler actions in Java librariesProceedings of the 31st Annual ACM Symposium on Applied Computing10.1145/2851613.2851793(1520-1526)Online publication date: 4-Apr-2016
  • (2016)Transforming spreadsheet data types using examplesProceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages10.1145/2837614.2837668(343-356)Online publication date: 11-Jan-2016
  • (2014)Abstract Domains of Affine RelationsACM Transactions on Programming Languages and Systems10.1145/265136136:4(1-73)Online publication date: 28-Oct-2014
  • (2011)Probabilistically accurate program transformationsProceedings of the 18th international conference on Static analysis10.5555/2041552.2041576(316-333)Online publication date: 14-Sep-2011
  • (2011)Abstract domains of affine relationsProceedings of the 18th international conference on Static analysis10.5555/2041552.2041569(198-215)Online publication date: 14-Sep-2011
  • (2011)Verification of semantic commutativity conditions and inverse operations on linked data structuresProceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1993498.1993561(528-541)Online publication date: 4-Jun-2011
  • (2011)Verification of semantic commutativity conditions and inverse operations on linked data structuresACM SIGPLAN Notices10.1145/1993316.199356146:6(528-541)Online publication date: 4-Jun-2011
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media