В нашем продукте Clion есть анализ потоков данных для языка С++, который позволяет предсказывать ветвления, находить “висячие” ссылки, обращения к удалённой памяти, итд. Все эти анализы написаны на специальном языке, напоминающем язык логики первого порядка. Этот язык интерпретируется, используя для представления знаний о программе специальную структуру данных BDD (Binary Decision Diagrams), которая является компактным представлением дизъюнктивно-нормальной формы булева предиката.
Этот язык удобный для написания DFA, но не имеет поддержки на уровне IDE.
Кроме того, у нас есть ещё одна IDE для С++ на базе плагина к Microsoft Visual Studio. Clion написан на Java/Kotlin, Resharper - на С++. Необходимо переиспользовать DFA из CLion-а в Resharper C++.
Вам предстоит: