Program input syntactic structure is essential for a wide range of applications such as test case generation, software debugging and network security. However, such important info...
Atomicity is a key correctness specification for multithreaded programs. Prior dynamic atomicity analyses include precise tools, which report an error if and only if the observed...
Java has emerged as one of the most dynamic programming languages today. During the past eight years it has become a leading choice as the programming language for an introductory...
We develop a method for matching dynamic histories of program executions of two program versions. The matches produced can be useful in many applications including software piracy...
Concurrent programming errors arise when threads share data incorrectly. Programmers often avoid these errors by using synchronization to enforce a simple ownership policy: data i...
Jean-Phillipe Martin, Michael Hicks, Manuel Costa,...