ABSTRACT
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.
- P. A. Abdulla, K. Čerāns, B. Jonsson, and Yih-Kuan Tsay. General decidability theorems for infinite-state systems. In LICS 96, pages 313--321. IEEE Press, 1996. Google Scholar
Digital Library
- T. Agerwala and J. Misra. Assertion graphs for verifying and synthesizing programs. Technical Report 83, University of Texas, Austin, 1978. Google Scholar
Digital Library
- T. Ball and S.K. Rajamani. The SLAM project: debugging system software via static analysis. In POPL 02: Principles of Programming Languages, pages 1--3. ACM, 2002. Google Scholar
Digital Library
- E. M. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement. In CAV 00: Computer-Aided Verification, LNCS 1855, pages 154--169. Springer, 2000. Google Scholar
Digital Library
- R. Cunningham. eel: Tools for debugging, visualization, and verification of event-driven software, 2005. Master's Thesis, UC Los Angeles.Google Scholar
- R. Cunningham and E. Kohler. Making events less slippery with Eel. In HotOS-X, 2005. Google Scholar
Digital Library
- G. Delzanno, J.-F. Raskin, and L. Van Begin. Towards the automated verification of multithreaded Java programs. In TACAS 02,LNCS 2280, pages 173--187. Springer, 2002. Google Scholar
Digital Library
- L. E. Dickson. Finiteness of the odd perfect and primitive abundant numbers with r distinct prime factors. Amer. Journal Math., 35:413--422, 1913.Google Scholar
Cross Ref
- E.W. Dijkstra. A Discipline of Programming. Prentice-Hall, 1976. Google Scholar
Digital Library
- M. Emmi and R. Majumdar. Decision problems for the verification of real-time software. In HSCC 06, LNCS 3927, pages 200--211. Springer, 2006. Google Scholar
Digital Library
- J. Esparza. Decidability and complexity of Petri net problems -an introduction. In Lectures on Petri Nets I: Basic Models, LNCS 1491, pages 374--428. 1998. Google Scholar
Digital Library
- D. Gay, P. Levis, R. von Behren, M. Welsh, E. Brewer, and D. Culler. The nesC language: A holistic approach to networked embedded systems. In PLDI 2003: Programming Languages Design and Implementation, pages 1--11. ACM, 2003. Google Scholar
Digital Library
- G. Geeraerts, J.-F. Raskin, and L. Van Begin. Expand, enlarge, and check: New algorithms for the coverability problem of WSTS. In FSTTCS 04, LNCS 3328, pages 287--298. Springer, 2004. Google Scholar
Digital Library
- S. Graf and H. Saïdi. Construction of abstract state graphs with PVS. In CAV 97: Computer Aided Verification, LNCS 1254, pages 72--83. Springer, 1997. Google Scholar
Digital Library
- T. Harris and K. Fraser. Language support for lightweight trans-actions. In OOPSLA 03: Object-Oriented Programming, Systems, Languages and Applications, pages 388--402, 2003. Google Scholar
Digital Library
- T. A. Henzinger, R. Jhala, and R. Majumdar. Race checking by context inference. In PLDI 04: Programming Languages Design and mplementation. ACM, 2004. Google Scholar
Digital Library
- T. A. Henzinger, R. Jhala, R. Majumdar, and K. L. McMillan. Abstractions from proofs. In POPL 04: Principles of Programming Languages, pages 232--244. ACM, 2004. Google Scholar
Digital Library
- T. A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy abstraction. In POPL 02: Principles of Programming Languages, pages 58--70. ACM, 2002. Google Scholar
Digital Library
- E. Kohler, R. Morris, B. Chen, J. Jannotti, and M.F. Kaashoek. The Click modular router. ACM Transactions on Computing Systems, 18(3):263--297, 2000. Google Scholar
Digital Library
- Libasync. http://pdos.csail.mit.edu/6.824-2004/async/.Google Scholar
- Libevent. http://www.monkey.org/%7Eprovos/libevent/.Google Scholar
- B.D. Lubachevsky. An approach to automating the verification of compact parallel coordination programs i. Acta Informatica, 21:125--169, 1984.Google Scholar
Digital Library
- The mace project. http://mace.ucsd.edu/.Google Scholar
- B. McCloskey, F. Zhou, D. Gay, and E. Brewer. Autolocker: Synchronization inference for atomic sections. In POPL '06: Principles of programming languages, pages 346--358. ACM, 2006. Google Scholar
Digital Library
- V. S. Pai, P. Druschel, and W. Zwaenepoel. Flash: An efficient and portable web server. In Proc. USENIX Tech. Conf., pages 199--212. Usenix, 1999. Google Scholar
Digital Library
- Rohit Parikh. On context-free languages. J. ACM, 13(4):570--581, 1966. Google Scholar
Digital Library
- G. Ramalingam. Context-sensitive synchronization-sensitive analysis is undecidable. ACM TOPLAS, 22(2):416--430, 2000. Google Scholar
Digital Library
- T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In POPL 95: Principles of Programming Languages, pages 49--61. ACM, 1995. Google Scholar
Digital Library
- M.F. Ringenburg and D. Grossman. Atomcaml: first-class atomicity via rollback. In ICFP 05, pages 92--104, New York, NY, USA, 2005. ACM. Google Scholar
Digital Library
- K. Sen and M. Vishwanathan. Model checking multithreaded programs with asynchronous atomic methods. In CAV 06,LNCS 4314, pages 300--314. Springer, 2006. Google Scholar
Digital Library
- M. Sharir and A. Pnueli. Two approaches to interprocedural data dalow analysis. In Program Flow Analysis: Theory and Applications, pages 189--233. Prentice-Hall, 1981.Google Scholar
- N. Zeldovich, A. Yip, F. Dabek, R.T. Morris, D. Mazières, and M.F. Kaashoek. Multiprocessor support for event-driven programs. In USENIX Technical Conference, pages 239--252, 2003.Google Scholar
Index Terms
Interprocedural analysis of asynchronous programs
Recommendations
Interprocedural analysis of asynchronous programs
Proceedings of the 2007 POPL ConferenceAn 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 pointer alias analysis
We present practical approximation methods for computing and representing interprocedural aliases for a program written in a language that includes pointers, reference parameters, and recursion. We present the following contributions: (1) a framework ...






Comments