Facebook перевёл в разряд открытых проектов статический анализатор Infer, который можно использовать для выявления ошибок в приложениях на языках Си, Objective-C и Java. В Facebook система применяется для проверки программ, разрабатываемых для платформ Android и iOS. Infer позволяет на основе анализа кода, без непосредственного запуска программы, выявлять такие проблемы, как разыменование указателей NULL, утечка ресурсов, проблемы при работе с памятью и различные ошибки, которые могут приводить к краху в процессе работы.

В основе Infer лежит несколько академических теорий, связанных с созданием алгоритмов математической логики, нацеленных на доказательстве корректности компьютерных программ и оптимизированных для решения задач оценки правильности кода. При анализе кода применяются логические рассуждения, на основе которых строится план выполнения программы, в котором система пытается повторить типовые рассуждения разработчика, проводящего ручной аудит кода. В настоящее время Infer достиг неплохой для автоматизированных средств эффективности, выявляя около 80% проблем из общего объёма ошибок, информация о которых поступает разработчикам. Код Infer написан на языках OCaml и Python, и распространяется под лицензией BSD.

Источник: http://www.opennet.ru/opennews/art.shtml?num=42405