Visual programming, programming by example, and program visualization: a taxonomy
CHI '86 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
An efficient general iterative algorithm for dataflow analysis
Acta Informatica
Interprocedural slicing using dependence graphs
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
An efficient method of computing static single assignment form
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficient evaluation of circular attribute grammars
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficiently computing static single assignment form and the control dependence graph
ACM Transactions on Programming Languages and Systems (TOPLAS)
Interprocedural aliasing in the presence of pointers
Interprocedural aliasing in the presence of pointers
Efficient accommodation of may-alias information in SSA form
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Abstract debugging of higher-order imperative languages
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Undecidability of static analysis
ACM Letters on Programming Languages and Systems (LOPLAS)
Type inclusion constraints and type inference
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
On finding the strongly connected components in a directed graph
Information Processing Letters
Context-sensitive interprocedural points-to analysis in the presence of function pointers
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
An efficient approach to computing fixpoints for complex program analysis
ICS '94 Proceedings of the 8th international conference on Supercomputing
Set-based analysis of ML programs
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
The undecidability of aliasing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient context-sensitive pointer analysis for C programs
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Context-insensitive alias analysis reconsidered
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Points-to analysis in almost linear time
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Precise flow-insensitive may-alias analysis is NP-hard
ACM Transactions on Programming Languages and Systems (TOPLAS)
Maintaining a topological order under edge insertions
Information Processing Letters
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Fast and accurate flow-insensitive points-to analysis
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Partial online cycle elimination in inclusion constraint graphs
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Using static single assignment form to improve flow-insensitive pointer analysis
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Pointer analysis for programs with structures and casting
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Efficient points-to analysis for whole-program analysis
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Interprocedural pointer alias analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Projection merging: reducing redundancies in inclusion constraint graphs
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Introduction to set constraint-based program analysis
Science of Computer Programming
Which pointer analysis should I use?
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
Unification-based pointer analysis with directional assignments
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Off-line variable substitution for scaling points-to analysis
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Scalable context-sensitive flow analysis using instantiation constraints
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Ultra-fast aliasing analysis using CLA: a million lines of C code in a second
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Pointer analysis: haven't we solved this problem yet?
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Extending and evaluating flow-insenstitive and context-insensitive points-to analyses for Java
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Points-to analysis for Java using annotated constraints
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Principles of Program Analysis
Principles of Program Analysis
Parameterized object sensitivity for points-to and side-effect analyses for Java
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Visualization of test information to assist fault localization
Proceedings of the 24th International Conference on Software Engineering
Propagating Differences: An Efficient New Fixpoint Algorithm for Distributive Constraint Systems
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
Set Constraints: Results, Applications, and Future Directions
PPCP '94 Proceedings of the Second International Workshop on Principles and Practice of Constraint Programming
The Semantics of Program Slicing and Program Integration
TAPSOFT '89 Proceedings of the International Joint Conference on Theory and Practice of Software Development, Volume 2: Advanced Seminar on Foundations of Innovative Software Development II and Colloquium on Current Issues in Programming Languages
Slicing Programs with Arbitrary Control-flow
AADEBUG '93 Proceedings of the First International Workshop on Automated and Algorithmic Debugging
An Even Faster Solver for General Systems of Equations
SAS '96 Proceedings of the Third International Symposium on Static Analysis
Polymorphic versus Monomorphic Flow-Insensitive Points-to Analysis for C
SAS '00 Proceedings of the 7th International Symposium on Static Analysis
Program Specialization via Program Slicing
Selected Papers from the Internaltional Seminar on Partial Evaluation
Incremental Computation of Static Single Assignment Form
CC '96 Proceedings of the 6th International Conference on Compiler Construction
Points-to Analysis by Type Inference of Programs with Structures and Unions
CC '96 Proceedings of the 6th International Conference on Compiler Construction
Extended SSA Numbering: Introducing SSA Properties to Language with Multi-level Pointers
CC '98 Proceedings of the 7th International Conference on Compiler Construction
VeriSoft: A Tool for the Automatic Analysis of Concurrent Reactive Software
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
MOCHA: Modularity in Model Checking
CAV '98 Proceedings of the 10th International Conference on Computer Aided Verification
VIS: A System for Verification and Synthesis
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
Effective Representation of Aliases and Indirect Memory Operations in SSA Form
CC '96 Proceedings of the 6th International Conference on Compiler Construction
HYTECH: A Model Checker for Hybrid Systems
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
CSSV: towards a realistic tool for statically detecting all buffer overflows in C
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
A static analyzer for large safety-critical software
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Analyzing Java Software by Combining Metrics and Program Visualization
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
ConSIT: A Conditioned Program Slicer
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
Cacti: a front end for program visualization
INFOVIS '97 Proceedings of the 1997 IEEE Symposium on Information Visualization (InfoVis '97)
An Improved Intra-procedural May-alias Analysis Algorithm
An Improved Intra-procedural May-alias Analysis Algorithm
Flow-Insensitive Points-to Analysis with Term and Set Constraints
Flow-Insensitive Points-to Analysis with Term and Set Constraints
Journal of Systems and Software
Efficient field-sensitive pointer analysis for C
Proceedings of the 5th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Incorporating domain-specific information into the compilation process
Incorporating domain-specific information into the compilation process
Scaling Java points-to analysis using SPARK
CC'03 Proceedings of the 12th international conference on Compiler construction
Software verification with BLAST
SPIN'03 Proceedings of the 10th international conference on Model checking software
A dynamic topological sort algorithm for directed acyclic graphs
Journal of Experimental Algorithmics (JEA)
Efficient field-sensitive pointer analysis of C
ACM Transactions on Programming Languages and Systems (TOPLAS)
A tight analysis of the Katriel–Bodlaender algorithm for online topological ordering
Theoretical Computer Science
From generic to specific: off-line optimization for a general constraint solver
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
Query simplification: graceful degradation for join-order optimization
Proceedings of the 2009 ACM SIGMOD International Conference on Management of data
Average-case analysis of incremental topological ordering
Discrete Applied Mathematics
Average-case analysis of online topological ordering
ISAAC'07 Proceedings of the 18th international conference on Algorithms and computation
RV'07 Proceedings of the 7th international conference on Runtime verification
Java bytecode verification for @NonNull types
CC'08/ETAPS'08 Proceedings of the Joint European Conferences on Theory and Practice of Software 17th international conference on Compiler construction
A batch algorithm for maintaining a topological order
ACSC '10 Proceedings of the Thirty-Third Australasian Conferenc on Computer Science - Volume 102
Points-to analysis with efficient strong updates
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Formalisation and implementation of an algorithm for bytecode verification of @NonNull types
Science of Computer Programming
Cycle elimination for invocation graph-based context-sensitive pointer analysis
Information and Software Technology
On-the-Fly reachability and cycle detection for recursive state machines
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Exploiting the structure of the constraint graph for efficient points-to analysis
Proceedings of the 2012 international symposium on Memory Management
Time- and space-efficient flow-sensitive points-to analysis
ACM Transactions on Architecture and Code Optimization (TACO)
Hi-index | 0.00 |
This paper presents and evaluates a number of techniques to improve the execution time of interprocedural pointer analysis in the context of C programs. The analysis is formulated as a graph of set constraints and solved using a worklist algorithm. Indirections lead to new constraints being added during this procedure. The solution process can be simplified by identifying cycles, and we present a novel online algorithm for doing this. We also present a difference propagation scheme which avoids redundant work by tracking changes to each solution set. The effectiveness of these and other methods are shown in an experimental study over 12 common ‘C’ programs ranging between 1000 to 150,000 lines of code.