A general-purpose algorithm for analyzing concurrent programs
Communications of the ACM
Concurrency analysis in the presence of procedures using a data-flow framework
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Automated formal analysis methods for concurrent and real-time software
Automated formal analysis methods for concurrent and real-time software
Data flow analysis for verifying properties of concurrent programs
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
A conservative data flow algorithm for detecting all pairs of statements that may happen in parallel
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
Efficient algorithms for pre* and post* on interprocedural parallel flow graphs
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Context-sensitive synchronization-sensitive analysis is undecidable
ACM Transactions on Programming Languages and Systems (TOPLAS)
Verifying safety properties of concurrent Java programs using 3-valued logic
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The regular viewpoint on PA-processes
Theoretical Computer Science
An Algorithm for Analyzing Communicating Processes
Proceedings of the 7th International Conference on Mathematical Foundations of Programming Semantics
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
Reachability Analysis of Pushdown Automata: Application to Model-Checking
CONCUR '97 Proceedings of the 8th International Conference on Concurrency Theory
Efficient Algorithms for Model Checking Pushdown Systems
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Parikh's Theorem in Commutative Kleene Algebra
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
Summarizing procedures in concurrent programs
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
KISS: keep it simple and sequential
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Analysis of recursive state machines
ACM Transactions on Programming Languages and Systems (TOPLAS)
Regular symbolic analysis of dynamic networks of pushdown systems
CONCUR 2005 - Concurrency Theory
Intermediate-representation recovery from low-level code
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Weighted pushdown systems and their application to interprocedural dataflow analysis
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
Compositional verification of sequential programs with procedures
Information and Computation
Verification of well-formed communicating recursive state machines
Theoretical Computer Science
WYSINWYX: What You See Is Not What You eXecute
Verified Software: Theories, Tools, Experiments
Solving Multiple Dataflow Queries Using WPDSs
SAS '08 Proceedings of the 15th international symposium on Static Analysis
SAS '08 Proceedings of the 15th international symposium on Static Analysis
Symbolic Context-Bounded Analysis of Multithreaded Java Programs
SPIN '08 Proceedings of the 15th international workshop on Model Checking Software
Program Models for Compositional Verification
ICFEM '08 Proceedings of the 10th International Conference on Formal Methods and Software Engineering
Name Creation vs. Replication in Petri Net Systems
Fundamenta Informaticae - PETRI NETS 2007
An Abort-Aware Model of Transactional Programming
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
Finding Concurrency-Related Bugs Using Random Isolation
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
A Decision Procedure for Detecting Atomicity Violations for Communicating Processes with Locks
Proceedings of the 16th International SPIN Workshop on Model Checking Software
Verifying Parallel Programs with Dynamic Communication Structures
CIAA '09 Proceedings of the 14th International Conference on Implementation and Application of Automata
ACM Computing Surveys (CSUR)
Invariant Checking for Programs with Procedure Calls
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
Constrained Reachability of Process Rewrite Systems
ICTAC '09 Proceedings of the 6th International Colloquium on Theoretical Aspects of Computing
A relational approach to interprocedural shape analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Reachability Analysis of Synchronized PA Systems
Electronic Notes in Theoretical Computer Science (ENTCS)
Checking Event-Based Specifications in Java Systems
Electronic Notes in Theoretical Computer Science (ENTCS)
Approximation-based tree regular model-checking
Nordic Journal of Computing
Weighted pushdown systems and their application to interprocedural dataflow analysis
SAS'03 Proceedings of the 10th international conference on Static analysis
SPIN'03 Proceedings of the 10th international conference on Model checking software
Name creation vs. replication in Petri net systems
ICATPN'07 Proceedings of the 28th international conference on Applications and theory of Petri nets and other models of concurrency
Low-level library analysis and summarization
CAV'07 Proceedings of the 19th international conference on Computer aided verification
SAT-based summarization for Boolean programs
Proceedings of the 14th international SPIN conference on Model checking software
Program analysis using weighted pushdown systems
FSTTCS'07 Proceedings of the 27th international conference on Foundations of software technology and theoretical computer science
A complete bounded model checking algorithm for pushdown systems
HVC'07 Proceedings of the 3rd international Haifa verification conference on Hardware and software: verification and testing
Interprocedural analysis of concurrent programs under a context bound
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Verifying parallel programs with dynamic communication structures
Theoretical Computer Science
Verification of graph transformation systems with context-free specifications
ICGT'10 Proceedings of the 5th international conference on Graph transformations
Abstract domains of affine relations
SAS'11 Proceedings of the 18th international conference on Static analysis
A next-generation platform for analyzing executables
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Reachability analysis of multithreaded software with asynchronous communication
FSTTCS '05 Proceedings of the 25th international conference on Foundations of Software Technology and Theoretical Computer Science
Model checking multithreaded programs with asynchronous atomic methods
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Improving pushdown system model checking
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Context-Bounded model checking of concurrent software
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Summaries for while programs with recursion
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Verification of well-formed communicating recursive state machines
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
Extended weighted pushdown systems
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
On computing reachability sets of process rewrite systems
RTA'05 Proceedings of the 16th international conference on Term Rewriting and Applications
Weighted dynamic pushdown networks
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Weighted pushdown systems and trust-management systems
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Verifying concurrent message-passing c programs with recursive calls
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Path optimization in programs and its application to debugging
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Formal Methods in System Design
Synchronisation- and reversal-bounded analysis of multithreaded programs with counters
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Name Creation vs. Replication in Petri Net Systems
Fundamenta Informaticae - PETRI NETS 2007
Recursive advice for coordination
COORDINATION'12 Proceedings of the 14th international conference on Coordination Models and Languages
SAS'07 Proceedings of the 14th international conference on Static Analysis
Precise thread-modular verification
SAS'07 Proceedings of the 14th international conference on Static Analysis
TSL: A System for Generating Abstract Interpreters and its Application to Machine-Code Analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
We present a generic aproach to the static analysis of concurrent programs with procedures. We model programs as communicating pushdown systems. It is known that typical dataflow problems for this model are undecidable, because the emptiness problem for the intersection of context-free languages, which is undecidable, can be reduced to them. In this paper we propose an algebraic framework for defining abstractions (upper approximations) of context-free languages. We consider two classes of abstractions: finite-chain abstractions, which are abstractions whose domains do not contain any infinite chains, and commutative abstractions corresponding to classes of languages that contain a word if and only if they contain all its permutations. We show how to compute such approximations by combining automata theoretic techniques with algorithms for solving systems of polynomial inequations in Kleene algebras.