Dynamic analysis is based on collecting data as the program runs. However, raw traces tend to be too voluminous and too unstructured to be used directly for visualization and unde...
Many automatic testing, analysis, and verification techniques for programs can be effectively reduced to a constraint-generation phase followed by a constraint-solving phase. Th...
Adam Kiezun, Vijay Ganesh, Philip J. Guo, Pieter H...
The notion that certain procedures are atomic is a fundamental correctness property of many multithreaded software systems. A procedure is atomic if for every execution there is a...
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...
Most computer science educators hold strong opinions about the “right” approach to teaching introductory level programming. Unfortunately, we have comparatively little hard ev...
Jaime Spacco, Jaymie Strecker, David Hovemeyer, Wi...