Algorithm design: a recursion transformation framework
Algorithm design: a recursion transformation framework
Automatic recognition of induction variables and recurrence relations by abstract interpretation
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Algorithms for computer algebra
Algorithms for computer algebra
Counting solutions to Presburger formulas: how and why
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Chains of recurrences—a method to expedite the evaluation of closed-form functions
ISSAC '94 Proceedings of the international symposium on Symbolic and algebraic computation
Nonlinear array dependence analysis
Nonlinear array dependence analysis
Beyond induction variables: detecting and classifying sequences using a demand-driven SSA form
ACM Transactions on Programming Languages and Systems (TOPLAS)
Simplification and optimization transformations of chains of recurrences
ISSAC '95 Proceedings of the 1995 international symposium on Symbolic and algebraic computation
Gated SSA-based demand-driven symbolic analysis for parallelizing compilers
ICS '95 Proceedings of the 9th international conference on Supercomputing
Discrete loops and worst case performance
Computer Languages
Symbolic analysis for parallelizing compilers
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient program analysis using DJ graphs
Efficient program analysis using DJ graphs
Term rewriting and all that
Nonlinear and Symbolic Data Dependence Testing
IEEE Transactions on Parallel and Distributed Systems
A Unified Approach to Path Problems
Journal of the ACM (JACM)
Symbolic pointer analysis for detecting memory leaks
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Symbolic Cache Analysis for Real-Time Systems
Real-Time Systems - Special issue on worst-case execution-time analysis
A static analyzer for finding dynamic programming errors
Software—Practice & Experience
Symbolic bounds analysis of pointers, array indices, and accessed memory regions
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
An Introduction to Proving the Correctness of Programs
ACM Computing Surveys (CSUR)
Some Techniques for Solving Recurrences
ACM Computing Surveys (CSUR)
Symbolic execution and program testing
Communications of the ACM
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Symbolic Analysis for Parallelizing Compilers
Symbolic Analysis for Parallelizing Compilers
Flow Analysis of Computer Programs
Flow Analysis of Computer Programs
Concrete Mathematics: A Foundation for Computer Science
Concrete Mathematics: A Foundation for Computer Science
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
Data-Flow Frameworks for Worst-Case Execution Time Analysis
Real-Time Systems
Interprocedural Symbolic Evaluation of Ada Programs with Aliases
Ada-Europe '99 Proceedings of the 1999 Ada-Europe International Conference on Reliable Software Technologies
Symbolic Data Flow Analysis for Detecting Deadlocks in Ada Tasking Programs
Ada-Europe '00 Proceedings of the 5th Ada-Europe International Conference on Reliable Software Technologies
The Mathematica Book
Interprocedural symbolic analysis
Interprocedural symbolic analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
A unified framework for nonlinear dependence testing and symbolic analysis
Proceedings of the 18th annual international conference on Supercomputing
Check 'n' crash: combining static checking and testing
Proceedings of the 27th international conference on Software engineering
Bogor/Kiasan: A k-bounded Symbolic Execution for Checking Strong Heap Properties of Open Systems
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Variably interprocedural program analysis for runtime error detection
Proceedings of the 2007 international symposium on Software testing and analysis
Combining symbolic execution with model checking to verify parallel numerical programs
ACM Transactions on Software Engineering and Methodology (TOSEM)
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Kiasan: A Verification and Test-Case Generation Framework for Java Based on Symbolic Execution
ISOLA '06 Proceedings of the Second International Symposium on Leveraging Applications of Formal Methods, Verification and Validation
Analyzing BlobFlow: A Case Study Using Model Checking to Verify Parallel Scientific Software
Proceedings of the 15th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface
Differential symbolic execution
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
A survey of new trends in symbolic execution for software testing and analysis
International Journal on Software Tools for Technology Transfer (STTT) - Special Section on HVC 07
Eliminating redundant range checks in GNAT using symbolic evaluation
Ada-Europe'03 Proceedings of the 8th Ada-Europe international conference on Reliable software technologies
Generalized symbolic execution for model checking and testing
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
Bakar Kiasan: flexible contract checking for critical systems using symbolic execution
NFM'11 Proceedings of the Third international conference on NASA Formal methods
Static detection of access anomalies in ada95
Ada-Europe'06 Proceedings of the 11th Ada-Europe international conference on Reliable Software Technologies
Symbolic analysis of imperative programming languages
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
Hi-index | 0.00 |
We present a generic symbolic analysis framework for imperative programming languages. Our framework is capable of computing all valid variable bindings of a program at given program points. This information is invaluable for domain-specific static program analyses such as memory leak detection, program parallelization, and the detection of superfluous bound checks, variable aliases and task deadlocks. We employ path expression algebra to model the control flow information of programs. A homomorphism maps path expressions into the symbolic domain. At the center of the symbolic domain is a compact algebraic structure called supercontext. A supercontext contains the complete control and data flow analysis information valid at a given program point. Our approach to compute supercontexts is based purely on algebra and is fully automated. This novel representation of program semantics closes the gap between program analysis and computer algebra systems, which makes supercontexts an ideal symbolic intermediate representation for all domain-specific static program analyses. Our approach is more general than existing methods because it can derive solutions for arbitrary (even intra-loop and nested loop) nodes of reducible and irreducible control flow graphs. We prove the correctness of our symbolic analysis method. Our experimental results show that the problem sizes arising from real-world applications such as the SPEC95 benchmark suite are tractable for our symbolic analysis framework.