Ответ 1
Немного информации в дополнение к Робу
-
Инструмент для резки программ Wisconsin развился в инструменте CodeSurfer. Хорошие новости: он коммерчески доступен и поддерживается, и он отлично работает для того, что он делает. Плохая новость (возможно): на самом деле она не создает уменьшенную программу, которая вычисляет то же значение, которое вы выбрали, но это очень удобно для навигации исходного кода, который вы еще не записали.
-
Frama-C обрабатывает только C (в обозримом будущем нет С++). Для навигации исходного кода неплохо, но он может создавать эквивалентную меньшую программу для указанного вами критерия, если исходная программа имеет то, что она может автоматически анализировать (без рекурсии, без динамического выделения). Frama-C является Open Source и имеет список рассылки, в котором ваши вопросы будут приветствоваться, если вас интересуют методы, которые он использует.
Причина, по которой CodeSurfer не рискует создать эквивалентную программу, и Frama-C может делать это только для кода со встроенными ограничениями, короче говоря, для этого требуется знание значений указателей, которые могут быть произвольно трудными для точного вычисления.