Repository logo

Source code patches from dynamic analysis

Published version


Conference Object

Change log


Dynamic analysis can identify improvements to programs that cannot feasibly be identified by static analysis; concurrency improvements are a motivating example. However, mapping these dynamic-analysis-based improvements back to patch-like source-code changes is non-trivial. We describe a system, Scopda, for generating source-code patches for improvements identified by execution-trace-based dynamic analysis. Scopda uses a graph-based static program representation (abstract program graph, APG), containing inter-procedural control flow and local data flow information, to analyse and transform static source-code. We demonstrate Scopda's ability to generate sensible source code patches for Java programs, though it is fundamentally language agnostic.



Source patch generation, Dynamic-to-static resolution, Concurrency improvements, Task-based concurrency, Abstract program graph

Journal Title

FTfJP 2021 - Proceedings of the 23rd ACM International Workshop on Formal Techniques for Java-Like Programs, co-located with ECOOP/ISSTA 2021

Conference Name

ISSTA '21: 30th ACM SIGSOFT International Symposium on Software Testing and Analysis

Journal ISSN

Volume Title




Publisher's own licence
The first author was funded by the Engineering and Physical Sciences Research Council (EPSRC), the Cambridge Trusts, and the University of Cambridge Department of Computer Science and Technology.