Precise interprocedural dataflow analysis via graph reachability
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Journal of the ACM (JACM)
Context-sensitive synchronization-sensitive analysis is undecidable
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Computer Systems (TOCS)
The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Discipline of Programming
Towards the Automated Verification of Multithreaded Java Programs
TACAS '02 Proceedings of the 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Decidability and Complexity of Petri Net Problems - An Introduction
Lectures on Petri Nets I: Basic Models, Advances in Petri Nets, the volumes are based on the Advanced Course on Petri Nets
Construction of Abstract State Graphs with PVS
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
Counterexample-Guided Abstraction Refinement
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
General decidability theorems for infinite-state systems
LICS '96 Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science
Assertion Graphs for Verifying and Synthesizing Programs
Assertion Graphs for Verifying and Synthesizing Programs
Language support for lightweight transactions
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Race checking by context inference
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
AtomCaml: first-class atomicity via rollback
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Autolocker: synchronization inference for atomic sections
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Making events less slippery with eel
HOTOS'05 Proceedings of the 10th conference on Hot Topics in Operating Systems - Volume 10
Flash: an efficient and portable web server
ATEC '99 Proceedings of the annual conference on USENIX Annual Technical Conference
Decision problems for the verification of real-time software
HSCC'06 Proceedings of the 9th international conference on Hybrid Systems: computation and control
Model checking multithreaded programs with asynchronous atomic methods
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Expand, enlarge, and check: new algorithms for the coverability problem of WSTS
FSTTCS'04 Proceedings of the 24th international conference on Foundations of Software Technology and Theoretical Computer Science
Generating precise and concise procedure summaries
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Deriving State Machines from TinyOS Programs Using Symbolic Execution
IPSN '08 Proceedings of the 7th international conference on Information processing in sensor networks
On the Reachability Analysis of Acyclic Networks of Pushdown Systems
CONCUR '08 Proceedings of the 19th international conference on Concurrency Theory
Verifying liveness for asynchronous programs
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Using static analysis for Ajax intrusion detection
Proceedings of the 18th international conference on World wide web
Static data race detection for concurrent programs with asynchronous calls
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Deciding branching time properties for asynchronous programs
Theoretical Computer Science
Analyzing Real-Time Event-Driven Programs
FORMATS '09 Proceedings of the 7th International Conference on Formal Modeling and Analysis of Timed Systems
Summarization for termination: no return!
Formal Methods in System Design
Context-bounded analysis of concurrent queue systems
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
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
SPIN'10 Proceedings of the 17th international SPIN conference on Model checking software
Reasoning about threads with bounded lock chains
CONCUR'11 Proceedings of the 22nd international conference on Concurrency theory
Specification and encoding of transaction interaction properties
Formal Methods in System Design
Underspecified harnesses and interleaved bugs
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Analysis of recursively parallel programs
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Algorithmic verification of asynchronous programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Reachability analysis of communicating pushdown systems
FOSSACS'10 Proceedings of the 13th international conference on Foundations of Software Science and Computational Structures
Bounded phase analysis of message-passing programs
TACAS'12 Proceedings of the 18th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Decidability results for well-structured transition systems with auxiliary storage
CONCUR'07 Proceedings of the 18th international conference on Concurrency Theory
Asynchronous programs with prioritized task-buffers
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Bounded context-switching and reentrant locking
FOSSACS'13 Proceedings of the 16th international conference on Foundations of Software Science and Computation Structures
Practical static race detection for Java parallel loops
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Analysis of Recursively Parallel Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Well-Structured pushdown systems
CONCUR'13 Proceedings of the 24th international conference on Concurrency Theory
Expand, enlarge, and check for branching vector addition systems
CONCUR'13 Proceedings of the 24th international conference on Concurrency Theory
Safety verification of asynchronous pushdown systems with shaped stacks
CONCUR'13 Proceedings of the 24th international conference on Concurrency Theory
Hi-index | 0.00 |
An asynchronous program is one that contains procedure calls which are not immediately executed from the callsite, but stored and "dispatched" in a non-deterministic order by an external scheduler at a later point. We formalize the problem of interprocedural dataflow analysis for asynchronous programs as AIFDS problems, a generalization of the IFDS problems for interprocedural dataflow analysis. We give an algorithm for computing the precise meet-over-valid-paths solution for any AIFDS instance, as well as a demand-driven algorithm for solving the corresponding demand AIFDS instances. Our algorithm can be easily implemented on top of any existing interprocedural dataflow analysis framework. We have implemented the algorithm on top of BLAST, thereby obtaining the first safety verification tool for unbounded asynchronous programs. Though the problem of solving AIFDS instances is EXPSPACE-hard, we find that in practice our technique can efficiently analyze programs by exploiting standard optimizations of interprocedural dataflow analyses.