Results 1  10
of
35
A robust class of contextsensitive languages
 In LICS
, 2007
"... We define a new class of languages defined by multistack automata that forms a robust subclass of contextsensitive languages, with decidable emptiness and closure under boolean operations. This class, called multistack visibly pushdown languages (MVPLs), is defined using multistack pushdown auto ..."
Abstract

Cited by 43 (7 self)
 Add to MetaCart
(Show Context)
We define a new class of languages defined by multistack automata that forms a robust subclass of contextsensitive languages, with decidable emptiness and closure under boolean operations. This class, called multistack visibly pushdown languages (MVPLs), is defined using multistack pushdown automata with two restrictions: (a) the pushdown automaton is visible, i.e. the input letter determines the operation on the stacks, and (b) any computation of the machine can be split into�stages, where in each stage, there is at most one stack that is popped. MVPLs are an extension of visibly pushdown languages that captures noncontext free behaviors, and has applications in analyzing abstractions of multithreaded recursive programs, significantly enlarging the search space that can be explored for them. We show that MVPLs are closed under boolean operations, and problems such as emptiness and inclusion are decidable. We characterize MVPLs using monadic secondorder logic over appropriate structures, and exhibit a Parikh theorem for them. 1.
Interprocedural analysis of concurrent programs under a context bound
 In TACAS
, 2007
"... Abstract. Analysis of recursive programs in the presence of concurrency and shared memory is undecidable. In previous work, Qadeer and Rehof [23] showed that contextbounded analysis is decidable for recursive programs under a finitestate abstraction of program data. In this paper, we show that con ..."
Abstract

Cited by 40 (6 self)
 Add to MetaCart
(Show Context)
Abstract. Analysis of recursive programs in the presence of concurrency and shared memory is undecidable. In previous work, Qadeer and Rehof [23] showed that contextbounded analysis is decidable for recursive programs under a finitestate abstraction of program data. In this paper, we show that contextbounded analysis is decidable for certain families of infinitestate abstractions, and also provide a new symbolic algorithm for the finitestate case. 1
Model checking multithreaded programs with asynchronous atomic methods.
 In Computer Aided Verification,
, 2006
"... ..."
(Show Context)
ContextBounded Analysis of Concurrent Queue Systems ⋆
"... Abstract. We show that the bounded contextswitching reachability problem for concurrent finite systems communicating using unbounded FIFO queues is decidable, where in each context a process reads from only one queue (but is allowed to write onto all other queues). Our result also holds when indivi ..."
Abstract

Cited by 34 (4 self)
 Add to MetaCart
(Show Context)
Abstract. We show that the bounded contextswitching reachability problem for concurrent finite systems communicating using unbounded FIFO queues is decidable, where in each context a process reads from only one queue (but is allowed to write onto all other queues). Our result also holds when individual processes are finitestate recursive programs provided a process dequeues messages only when its local stack is empty. We then proceed to classify architectures that admit a decidable (unbounded context switching) reachability problem, using the decidability of bounded context switching. We show that the precise class of decidable architectures for recursive programs are the forest architectures, while the decidable architectures for nonrecursive programs are those that do not have an undirected cycle. 1
Symbolic contextbounded analysis of multithreaded Java programs
 In Intl. SPIN Workshop on Model Checking Software
, 2008
"... Abstract. The reachability problem is undecidable for programs with both recursive procedures and multiple threads communicating through shared memory. Attempts to overcome this problem have been the focus of much recent research. One approach is to use contextbounded reachability, i.e. to consider ..."
Abstract

Cited by 21 (2 self)
 Add to MetaCart
(Show Context)
Abstract. The reachability problem is undecidable for programs with both recursive procedures and multiple threads communicating through shared memory. Attempts to overcome this problem have been the focus of much recent research. One approach is to use contextbounded reachability, i.e. to consider only those runs in which the active thread changes at most k times, where k is fixed. However, to the best of our knowledge, contextbounded reachability has not been implemented in any tool so far, primarily because its worstcase runtime is prohibitively high, i.e. O(n k), where n is the size of the shared memory. Moreover, existing algorithms for contextbounded reachability do not admit a meaningful symbolic implementation (e.g., using BDDs) to reduce the runtime in practice. In this paper, we propose an improvement that overcomes this problem. We have implemented our approach in the tool jMoped and report on experiments. 1
Reachability analysis of communicating pushdown systems
, 2009
"... The reachability analysis of recursive programs that communicate asynchronously over reliable Fifo channels calls for restrictions to ensure decidability. We extend here a model proposed by La Torre, Madhusudan and Parlato [LMP08], based on communicating pushdown systems that can dequeue with empt ..."
Abstract

Cited by 21 (3 self)
 Add to MetaCart
(Show Context)
The reachability analysis of recursive programs that communicate asynchronously over reliable Fifo channels calls for restrictions to ensure decidability. We extend here a model proposed by La Torre, Madhusudan and Parlato [LMP08], based on communicating pushdown systems that can dequeue with empty stack only. Our extension adds the dual modality, which allows to dequeue with nonempty stack, and thus models interrupts for working threads. We study (possibly cyclic) network architectures under a semantic assumption on communication that ensures the decidability of reachability for finite state systems. Subsequently, we determine precisely how pushdowns can be added to this setting while preserving the decidability; in the positive case we obtain exponential time as the exact complexity bound of reachability. A second result is a generalization of the doubly exponential time algorithm of [LMP08] for bounded context analysis to our symmetric queueing policy. We provide here a direct and simpler algorithm.
Contextbounded analysis of multithreaded programs with dynamic linked structures
 In CAV
, 2007
"... Abstract. Bounded context switch reachability analysis is a useful and efficient approach for detecting bugs in multithreaded programs. In this paper, we address the application of this approach to the analysis of multithreaded programs with procedure calls and dynamic linked structures. We define a ..."
Abstract

Cited by 19 (1 self)
 Add to MetaCart
(Show Context)
Abstract. Bounded context switch reachability analysis is a useful and efficient approach for detecting bugs in multithreaded programs. In this paper, we address the application of this approach to the analysis of multithreaded programs with procedure calls and dynamic linked structures. We define a program semantics based on concurrent pushdown systems with visible heaps as stack symbols. A visible heap is the part of the heap reachable from global and local variables. We use pushdown analysis techniques to define an algorithm that explores the entire configuration space reachable under given bounds on the number of context switches and the size of visible heaps. 1
Boundedness vs. Unboundedness of Lock Chains: Characterizing Decidability of CFLReachability for Threads Communicating via Locks
"... The problem of Pairwise CFLreachability is to decide whether two given program locations in different threads are simultaneously reachable in the presence of recursion in threads and scheduling constraints imposed by synchronization primitives. Pairwise CFLreachability is the core problem underlyi ..."
Abstract

Cited by 18 (4 self)
 Add to MetaCart
(Show Context)
The problem of Pairwise CFLreachability is to decide whether two given program locations in different threads are simultaneously reachable in the presence of recursion in threads and scheduling constraints imposed by synchronization primitives. Pairwise CFLreachability is the core problem underlying concurrent program analysis especially dataflow analysis. Unfortunately, it is undecidable even for the most commonly used synchronization primitive, i.e., mutex locks. Lock usage in concurrent programs can be characterized in terms of lock chains, where a sequence of mutex locks is said to be chained if the scopes of adjacent (nonnested) mutexes overlap. Although pairwise reachability is known to decidable for threads interacting via nested locks, i.e., chains of length one, these techniques don’t extend to programs with nonnested locks used in crucial applications like databases and device drivers. In this paper, we exploit the fact that lock usage patterns in real life programs do not produce unbounded lock chains. For such programs, we show that pairwise CFLreachability becomes decidable. Towards that end, we formulate small model properties that bound the lengths of paths that need to be traversed in order to reach a given pair of control states. Our new results narrow the decidability gap for pairwise CFLreachability by providing a more refined characterization for it in terms of boundedness of lock chains rather than the current stateoftheart, i.e., nestedness of locks (chains of length one). 1
Rewriting models of Boolean programs
 In Proc. Intern. Conf. on Rewriting Techniques and Applications (RTA’06), volume 4098 of LNCS
, 2006
"... Abstract. We show that rewrite systems can be used to give semantics to imperative programs with boolean variables, a class of programs used in software modelchecking as over or underapproximations of real programs. We study the classes of rewrite systems induced by programs with different feature ..."
Abstract

Cited by 14 (5 self)
 Add to MetaCart
(Show Context)
Abstract. We show that rewrite systems can be used to give semantics to imperative programs with boolean variables, a class of programs used in software modelchecking as over or underapproximations of real programs. We study the classes of rewrite systems induced by programs with different features like procedures, concurrency, or dynamic thread creation, and survey a number of results on their word problem and their symbolic reachability problem. 1
PartialOrder Reduction for ContextBounded State Exploration
, 2007
"... Iterative contextbounding is a technique for performing prioritized search of the statespace of multithreaded programs. A context switch occurs in a concurrent execution when a thread temporarily stops and a different thread resumes. Iterative contextbounding gives priority to executions with fe ..."
Abstract

Cited by 13 (5 self)
 Add to MetaCart
Iterative contextbounding is a technique for performing prioritized search of the statespace of multithreaded programs. A context switch occurs in a concurrent execution when a thread temporarily stops and a different thread resumes. Iterative contextbounding gives priority to executions with fewer context switches during statespace search, exploring for a given contextbound c only those executions in which the number of context switches is at most c. Prior work has shown that this search algorithm is effective in finding many subtle concurrency errors in large programs. Partialorder reduction has traditionally been applied in complete statespace search and depthbounded search for reducing the cost of state exploration; however, these techniques have not been applied to contextbounded search. As we show in our paper, it is difficult to perform partialorder reduction during a contextbounded search because of subtle interactions between the two techniques. The main contribution of our paper is an algorithm for performing partialorder reduction for contextbounded state exploration.