1,540 research outputs found
Algorithmic Verification of Asynchronous Programs
Asynchronous programming is a ubiquitous systems programming idiom to manage
concurrent interactions with the environment. In this style, instead of waiting
for time-consuming operations to complete, the programmer makes a non-blocking
call to the operation and posts a callback task to a task buffer that is
executed later when the time-consuming operation completes. A co-operative
scheduler mediates the interaction by picking and executing callback tasks from
the task buffer to completion (and these callbacks can post further callbacks
to be executed later). Writing correct asynchronous programs is hard because
the use of callbacks, while efficient, obscures program control flow.
We provide a formal model underlying asynchronous programs and study
verification problems for this model. We show that the safety verification
problem for finite-data asynchronous programs is expspace-complete. We show
that liveness verification for finite-data asynchronous programs is decidable
and polynomial-time equivalent to Petri Net reachability. Decidability is not
obvious, since even if the data is finite-state, asynchronous programs
constitute infinite-state transition systems: both the program stack and the
task buffer of pending asynchronous calls can be potentially unbounded.
Our main technical construction is a polynomial-time semantics-preserving
reduction from asynchronous programs to Petri Nets and conversely. The
reduction allows the use of algorithmic techniques on Petri Nets to the
verification of asynchronous programs.
We also study several extensions to the basic models of asynchronous programs
that are inspired by additional capabilities provided by implementations of
asynchronous libraries, and classify the decidability and undecidability of
verification questions on these extensions.Comment: 46 pages, 9 figure
Parikh Image of Pushdown Automata
We compare pushdown automata (PDAs for short) against other representations.
First, we show that there is a family of PDAs over a unary alphabet with
states and stack symbols that accepts one single long word for
which every equivalent context-free grammar needs
variables. This family shows that the classical algorithm for converting a PDA
to an equivalent context-free grammar is optimal even when the alphabet is
unary. Moreover, we observe that language equivalence and Parikh equivalence,
which ignores the ordering between symbols, coincide for this family. We
conclude that, when assuming this weaker equivalence, the conversion algorithm
is also optimal. Second, Parikh's theorem motivates the comparison of PDAs
against finite state automata. In particular, the same family of unary PDAs
gives a lower bound on the number of states of every Parikh-equivalent finite
state automaton. Finally, we look into the case of unary deterministic PDAs. We
show a new construction converting a unary deterministic PDA into an equivalent
context-free grammar that achieves best known bounds.Comment: 17 pages, 2 figure
Weighted Dynamic Pushdown Networks
We develop a generic framework for the analysis of programs with recursive procedures and dynamic process creation. To this end we combine the approach of weighted pushdown systems (WPDS) with the model of dynamic pushdown networks (DPN). Weighted dynamic pushdown networks (WDPN) describe processes running in parallel. Each process may perform pushdown actions and spawn new processes. Transitions are labelled by weights to carry additional information. We derive a method to determine meet-over-all-paths values for the paths from a starting configuration to a regular set of configurations of a WDPN
Abstract Interpretation with Unfoldings
We present and evaluate a technique for computing path-sensitive interference
conditions during abstract interpretation of concurrent programs. In lieu of
fixed point computation, we use prime event structures to compactly represent
causal dependence and interference between sequences of transformers. Our main
contribution is an unfolding algorithm that uses a new notion of independence
to avoid redundant transformer application, thread-local fixed points to reduce
the size of the unfolding, and a novel cutoff criterion based on subsumption to
guarantee termination of the analysis. Our experiments show that the abstract
unfolding produces an order of magnitude fewer false alarms than a mature
abstract interpreter, while being several orders of magnitude faster than
solver-based tools that have the same precision.Comment: Extended version of the paper (with the same title and authors) to
appear at CAV 201
Importance of molecular interactions in colloidal dispersions
We review briefly the concept of colloidal dispersions, their general
properties and some of their most important applications, as well as the basic
molecular interactions that give rise to their properties in equilibrium.
Similarly, we revisit Brownian motion and hydrodynamic interactions associated
with the concept of viscosity of colloidal dispersion. It is argued that the
use of modern research tools, such as computer simulations, allows one to
predict accurately some macroscopically measurable properties by solving
relatively simple models of molecular interactions for a large number of
particles. Lastly, as a case study, we report the prediction of rheological
properties of polymer brushes using state of the art, coarse grained computer
simulations, which are in excellent agreement with experiments.Comment: 8 pages, 10 figure
Safety verification of asynchronous pushdown systems with shaped stacks
In this paper, we study the program-point reachability problem of concurrent
pushdown systems that communicate via unbounded and unordered message buffers.
Our goal is to relax the common restriction that messages can only be retrieved
by a pushdown process when its stack is empty. We use the notion of partially
commutative context-free grammars to describe a new class of asynchronously
communicating pushdown systems with a mild shape constraint on the stacks for
which the program-point coverability problem remains decidable. Stacks that fit
the shape constraint may reach arbitrary heights; further a process may execute
any communication action (be it process creation, message send or retrieval)
whether or not its stack is empty. This class extends previous computational
models studied in the context of asynchronous programs, and enables the safety
verification of a large class of message passing programs
- ā¦