Abstract We provide a parametric framework for verifying safety properties of concurrent Java programs. The framework combines thread-scheduling information with information about the shape of the heap. This leads to error-detection algorithms that are more precise than existing techniques. The framework also provides the most precise shape-analysis algorithm for concurrent programs. In contrast to existing verification techniques, we do not put a bound on the number of allocated objects. The framework even produces interesting results when analyzing Java programs with an unbounded number of threads. The framework is applied to successfully verify the following properties of a concurrent program: ffl Concurrent manipulation of linked-list b...
AbstractEvolving and refactoring concurrent Java software can be error-prone, resulting in race cond...
Digital services are becoming an essential part of our daily lives. To provide these services, effic...
Concurrency is ubiquitous in modern software. The computing base of systems software, including oper...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
Reasoning about object-oriented programs is hard, due to aliasing, dynamic binding and the need for ...
We present a framework for verifiable concurrent programming in Java based on a design pattern for c...
The design of concurrent programs has a reputation for being difficult, and thus potentially dangero...
Besides the features of a class-based object-oriented language, Java integrates concurrency via its ...
AbstractDevelopment of concurrent and time-dependent software systems is currently growing in its st...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
Mainstream programming is migrating to concurrent archi-tectures to improve performance and facilita...
Multithreaded programming is difficult and error prone. Multithreaded programs typically synchronize...
Besides the features of a class-based object-oriented language, Java integrates concurrency via its ...
Two features distinguish Java from other main-stream programming languages like C and C++: its built...
The Java programming language provides safety and security guarantees such as type safety and its se...
AbstractEvolving and refactoring concurrent Java software can be error-prone, resulting in race cond...
Digital services are becoming an essential part of our daily lives. To provide these services, effic...
Concurrency is ubiquitous in modern software. The computing base of systems software, including oper...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
Reasoning about object-oriented programs is hard, due to aliasing, dynamic binding and the need for ...
We present a framework for verifiable concurrent programming in Java based on a design pattern for c...
The design of concurrent programs has a reputation for being difficult, and thus potentially dangero...
Besides the features of a class-based object-oriented language, Java integrates concurrency via its ...
AbstractDevelopment of concurrent and time-dependent software systems is currently growing in its st...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
Mainstream programming is migrating to concurrent archi-tectures to improve performance and facilita...
Multithreaded programming is difficult and error prone. Multithreaded programs typically synchronize...
Besides the features of a class-based object-oriented language, Java integrates concurrency via its ...
Two features distinguish Java from other main-stream programming languages like C and C++: its built...
The Java programming language provides safety and security guarantees such as type safety and its se...
AbstractEvolving and refactoring concurrent Java software can be error-prone, resulting in race cond...
Digital services are becoming an essential part of our daily lives. To provide these services, effic...
Concurrency is ubiquitous in modern software. The computing base of systems software, including oper...