A large number of industrial concurrent programs are being designed based on a model which combines threads with event-based communication. These programs consist of several threa...
Vineet Kahlon, Nishant Sinha, Erik Kruus, Yun Zhan...
Crosscutting concerns can hinder maintainability of a design because they do not adhere to a system's underlying modular structure. Developers, therefore, may wish to refacto...
Eduardo Figueiredo, Jon Whittle, Alessandro F. Gar...
System specifications have long been expressed through automata-based languages, enabling verification techniques such as model checking. These verification techniques can assess ...
A program is reentrant if distinct executions of that program on distinct inputs cannot affect each other. Reentrant programs have the desirable property that they can be deployed...
Modern development environments often involve models with complex consistency relations. Some of the relations can be automatically established through "fixing procedures&quo...
The suggestions made by current IDE's code completion features are based exclusively on static type system of the programming language. As a result, often proposals are made ...
Debugging refers to the laborious process of finding causes of program failures. Often, such failures are introduced when a program undergoes changes and evolves from a stable ver...
We propose a new algorithm for verifying concurrent programs, which uses concrete executions to partition the program into a set of lean partitions called concurrent trace program...