Новый выпуск примечателен реализацией полной поддержки выявления аномалий и обучения на основе типовых шаблонов кода для языка С++. В прошлых версиях подобная поддержка была обеспечена для языков C и PHP. Система подходит для определения в коде различных видов проблем, от определения опечаток и неверного сочетания типов, до выявления аномалий в условных выражениях «if» и пропущенных проверок значения NULL в указателях. Система обучается путём построения статистической модели имеющегося массива кода открытых проектов на языках C, C++ и PHP, опубликованных в GitHub и подобных публичных репозиториях.
На стадии обучения система определяет типовые шаблоны построения конструкций в коде и строит синтаксическое дерево связей между этими шаблонами, отражающее поток выполнения кода в программе. В итоге формируется эталонное дерево принятия решений, объединяющее опыт разработки всех проанализированных исходных текстов. Для проверяемого кода выполняется похожий процесс определения шаблонов, которые сверяются с эталонным деревом принятия решений. Большие расхождения с соседними ветвями свидетельствуют о наличии аномалии в проверяемом шаблоне.
Источник: http://www.opennet.ru/opennews/art.shtml?num=57164