Dataflow antipatterns : discovering dataflow errors in workflows Despite the abundance of analysis techniques to discover controlflow errors in workflow designs, there is hardly any support for dataflow verification. Most techniques simply abstract from data, while data dependencies can be the source of all kinds of errors. This paper focuses on the discovery of dataflow errors in workflows. We present an analysis approach that uses socalled antipatterns expressed in terms of a temporal logic. Typical errors include accessing a data element that is not yet available or updating a data element while it may be read in a parallel branch. Since the antipatterns are expressed in terms of temporal logic, the wellknown, stable, adaptable, and effective modelchecking techniques can be used to discover dataflow errors. Moreover, our approach enables a seamless integration of control flow and dataflow verification.

Inferring Performance Bug Patterns from Developer Commits Performance bugs, i.e., program source code that is unnecessarily inefficient, have received significant attention by the research community in recent years. A number of empirical studies have investigated how these bugs differ from ordinary bugs that cause functional deviations and several approaches to aid their detection, localization, and removal have been proposed. Many of these approaches focus on certain subclasses of performance bugs, e.g., those resulting from redundant computations or unnecessary synchronization, and the evaluation of their effectiveness is usually limited to a small number of known instances of these bugs. To provide researchers working on performance bug detection and localization techniques with a larger corpus of performance bugs to evaluate against, we conduct a study of more than 700 performance bug fixing commits across 13 popular open source projects written in C and C and investigate the relative frequency of bug types as well as their complexity. Our results show that many of these fixes follow a small set of bug patterns, that they are contributed by experienced developers, and that the number of lines needed to fix performance bugs is highly project dependent.