Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/964001.964029acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article

Precise interprocedural analysis through linear algebra

Published: 01 January 2004 Publication History

Abstract

We apply linear algebra techniques to precise interprocedural dataflow analysis. Specifically, we describe analyses that determine for each program point identities that are valid among the program variables whenever control reaches that program point. Our analyses fully interpret assignment statements with affine expressions on the right hand side while considering other assignments as non-deterministic and ignoring conditions at branches. Under this abstraction, the analysis computes the set of all affine relations and, more generally, all polynomial relations of bounded degree precisely. The running time of our algorithms is linear in the program size and polynomial in the number of occurring variables. We also show how to deal with affine preconditions and local variables and indicate how to handle parameters and return values of procedures.

References

[1]
K. R. Apt and G. D. Plotkin. Countable Nondeterminism and Random Assignment. Journal of the ACM, 33(4):724--767, 1986.]]
[2]
R. Bagnara, P. Hill, E. Ricci, and E. Zaffanella. Precise Widening Operators for Convex Polyhedra. In 10th Int. Static Analysis Symposium (SAS), pages 337--354. LNCS 2694, Springer-Verlag, 2003.]]
[3]
I. Balbin and K. Ramamohanarao. A Generalization of the Differential Approach to Recursive Query Evaluation. Journal of Logic Programming (JLP), 4(3):259--262, 1987.]]
[4]
P. Cousot. Constructive Design of a Hierarchy of Semantics of a Transition System by Abstract Interpretation. Electronic Notes in Theoretical Computer Science, 6, 1997. URL: www.elsevier.nl/locate/entcs/volume6.html.]]
[5]
P. Cousot and R. Cousot. Static Determination of Dynamic Properties of Recursive Procedures. In E. Neuhold, editor, IFIP Conf. on Formal Description of Programming Concepts, pages 237--277. North-Holland, 1977.]]
[6]
P. Cousot and N. Halbwachs. Automatic Discovery of Linear Restraints among Variables of a Program. In 5th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages (POPL), pages 84--97, 1978.]]
[7]
C. Fecht and H. Seidl. Propagating Differences: An Efficient New Fixpoint Algorithm for Distributive Constraint Systems. Nordic Journal of Computing (NJC), 5(4):304--329, 1998.]]
[8]
S. Gulwani and G. Necula. Discovering Affine Equalities Using Random Interpretation. In 30th Ann. ACM Symp. on Principles of Programming Languages (POPL), pages 74--84, 2003.]]
[9]
S. Horwitz, T. Reps, and M. Sagiv. Precise Interprocedural Dataflow Analysis with Applications to Constant Propagation. Theoretical Computer Science (TCS), 167(1&2):131--170, 1996.]]
[10]
M. Karr. Affine Relationships Among Variables of a Program. Acta Informatica, 6:133--151, 1976.]]
[11]
J. Knoop and B. Steffen. The Interprocedural Coincidence Theorem. In Compiler Construction (CC), pages 125--140. LNCS 541, Springer-Verlag, 1992.]]
[12]
S. S. Muchnick and N. D. Jones, editors. Program Flow Analysis: Theory and Applications. Prentice Hall, Engelwood Cliffs, New Jersey, 1981.]]
[13]
M. Müller-Olm and O. Rüthing. The Complexity of Constant Propagation. In 10th European Symposium on Programming (ESOP), pages 190--205. LNCS 2028, Springer-Verlag, 2001.]]
[14]
M. Müller-Olm and H. Seidl. Computing Polynomial Program Invariants. Submitted for publication.]]
[15]
M. Müller-Olm and H. Seidl. Polynomial Constants are Decidable. In 9th Static Analysis Symposium (SAS), pages 4--19. LNCS 2477, Springer-Verlag, 2002.]]
[16]
B. Paige and S. Koenig. Finite Differencing of Computable Expressions. ACM Trans. Prog. Lang. and Syst., 4(3):402--454, 1982.]]
[17]
T. Reps, S. Horwitz, and M. Sagiv. Precise Interprocedural Dataflow Analysis via Graph Reachability. In 22nd ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages (POPL), pages 49--61. ACM Press, 1995.]]
[18]
T. Reps, S. Schwoon, and S. Jha. Weighted Pushdown Systems and their Application to Interprocedural Dataflow Analysis. In Int. Static Analysis Symposium (SAS), pages 189--213. LNCS 2694, Springer-Verlag, 2003.]]
[19]
H. Seidl and B. Steffen. Constraint-Based Inter-Procedural Analysis of Parallel Programs. Nordic Journal of Computing (NJC), 7(4):375--400, 2000.]]
[20]
M. Sharir and A. Pnueli. Two Approaches to Interprocedural Data Flow Analysis. In {12}, chapter 7, pages 189--233.]]

Cited By

View all
  • (2024)Comparing semantic graph representations of source code: The case of automatic feedback on programming assignmentsComputer Science and Information Systems10.2298/CSIS230615004P21:1(117-142)Online publication date: 2024
  • (2024)Monotone Procedure Summarization via Vector Addition Systems and Inductive PotentialsProceedings of the ACM on Programming Languages10.1145/36897778:OOPSLA2(1873-1899)Online publication date: 8-Oct-2024
  • (2024)Non-numerical weakly relational domainsInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-024-00755-026:4(479-494)Online publication date: 1-Aug-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '04: Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 2004
364 pages
ISBN:158113729X
DOI:10.1145/964001
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 39, Issue 1
    POPL '04
    January 2004
    352 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/982962
    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: 01 January 2004

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. affine relation
  2. interprocedural analysis
  3. linear algebra
  4. polynomial relation
  5. weakest precondition

Qualifiers

  • Article

Conference

POPL04

Acceptance Rates

POPL '04 Paper Acceptance Rate 29 of 176 submissions, 16%;
Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)18
  • Downloads (Last 6 weeks)3
Reflects downloads up to 16 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Comparing semantic graph representations of source code: The case of automatic feedback on programming assignmentsComputer Science and Information Systems10.2298/CSIS230615004P21:1(117-142)Online publication date: 2024
  • (2024)Monotone Procedure Summarization via Vector Addition Systems and Inductive PotentialsProceedings of the ACM on Programming Languages10.1145/36897778:OOPSLA2(1873-1899)Online publication date: 8-Oct-2024
  • (2024)Non-numerical weakly relational domainsInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-024-00755-026:4(479-494)Online publication date: 1-Aug-2024
  • (2024)2-Pointer LogicTaming the Infinities of Concurrency10.1007/978-3-031-56222-8_16(281-307)Online publication date: 20-Mar-2024
  • (2023)When Less Is More: Consequence-Finding in a Weak Theory of ArithmeticProceedings of the ACM on Programming Languages10.1145/35712377:POPL(1275-1307)Online publication date: 11-Jan-2023
  • (2023)Octagons RevisitedStatic Analysis10.1007/978-3-031-44245-2_21(485-507)Online publication date: 22-Oct-2023
  • (2022)Guaranteed bounds for posterior inference in universal probabilistic programmingProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523721(536-551)Online publication date: 9-Jun-2022
  • (2022)Intensional Kleene and Rice theorems for abstract program semanticsInformation and Computation10.1016/j.ic.2022.104953289(104953)Online publication date: Nov-2022
  • (2021)An Abstract Domain to Infer Linear Absolute Value Equalities2021 International Symposium on Theoretical Aspects of Software Engineering (TASE)10.1109/TASE52547.2021.00020(47-54)Online publication date: Aug-2021
  • (2020)Datalog disassemblyProceedings of the 29th USENIX Conference on Security Symposium10.5555/3489212.3489273(1075-1092)Online publication date: 12-Aug-2020
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media