Task-specific style verification

Programming antipatterns are commonly used patterns that make the code unnecessary complex and unmaintainable. However, beginner programmers such as students, often use them. Usage of antipatterns should be eliminated from source code. Many antipatterns can be detected at compilation-time with an appropriate parser tool. In this paper we argue for a new lint-like tool that does detect typical programming antipatterns, and it is extensible to task-specific verifications. This tool mainly developed to evaluate students’ programs, however it can be used in industrial projects as well. Our approach based on pattern matching on abstract syntax tree provided by Clang parser. We present our description language that specifies the antipatterns.