Rupak Majumdar is an Assistant Professor in the Department of Computer Science at the University of California, Los Angeles. His research interests are in the verification and control of reactive systems, software verification and programming languages, logic, and automata theory. He received the President's Gold Medal from IIT Kanpur, the Leon O. Chua award from UC Berkeley, and an NSF CAREER award.
An asynchronous or event-driven program is one that contains procedure
calls which are not directly executed from the callsite, but
stored and ``dispatched" in a non-deterministic order by
an external scheduler at a later point.
Asynchronous programs are at the core of many server programs, embedded
systems, and popular programming models for the web (Javascript and AJAX).
Asynchronous programs are hard to analyze statically as both the program stack and
the number of outstanding asynchronous requests may be unbounded.
We describe an algorithm for precise static
analysis for asynchronous programs.
Our algorithm is a generalization of the
interprocedural dataflow analysis framework for sequential programs.
Though the problem is theoretically hard, we find that in practice our
technique can efficiently analyze programs by
exploiting standard optimizations of interprocedural dataflow analyses.
(Joint work with Ranjit Jhala and Pierre Ganty.)