2008-10-20 4 views
2

Есть ли простой инструмент проверки модели. Я планирую реализовать средство проверки модели, которое будет анализировать код для некоторых предопределенных свойств.Простой инструмент проверки модели

+0

Я думаю, вы должны попытаться объяснить немного ближе, что вы ищете ... –

+0

Я думаю, вы должны пересмотреть свой вопрос, чтобы он был более ясным. Этот вопрос может относиться к десяткам различных сценариев проверки модели. –

+0

Инструмент проверки модели, который поддерживает этапы. то есть я планирую реализовать Инструмент, который может сказать, прекращается ли приложение или нет. (Только статический анализ) – Vinay

ответ

5

Одним из важных инструментов является SPIN, с языком Promela. Если вы используете LaTeX, есть также TLA+.

Они не будут анализировать ваш код, но позволят вам выразить модель для ваших предположений и транзитных состояний и затем проанализировать недействительные состояния. Другими словами, они обнаружат проблемы в вашей модели, а не реализацию вашей модели.

Я видел демо Goanna, но я не знаю, доступен ли он вообще (коммерческий или иной); это имеет преимущество, фактически анализируя ваш исходный код.

Просто глядя на ваш вопрос и комментарии в своем вопросе снова, кажется, что вы действительно должны прочитать некоторые из литературы в первую очередь. Возможно, The Spin Model Checker, или Specifying Systems (можно загрузить с Leslie Lamport's website). Вам нужно пересмотреть свою проблему, чтобы вы не пытались решить проблему остановки.

2

CBMC - один простой инструмент, я знаю, что на самом деле работает на код. Проверка модели в целом - это тщательно изученная область, но, как уже отмечали люди, эта широта затрудняет предложение чего-то с предоставленной информацией. Существуют тысячи решателей SAT, формальные инструменты для проверки HDL/состояния машины и множество коммерческих анализаторов статических источников.

В любом случае, CBMC - хороший инструмент, но не верьте мне на слово; Эд Кларк, главный преподаватель за этой работой, получил премию Тьюринга в этом году ;-)

+0

Средство проверки модели, которое поддерживает состояния. то есть я планирую реализовать Инструмент, который может сказать, прекращается ли приложение или нет. (Только статический анализ) – Vinay

+0

Действительно? Это кажется немного сложным (http://en.wikipedia.org/wiki/Halting_problem) ;-) –

+0

@MattJ сложно, но не невозможно. Если CBMC подтвердит правильность вашей программы и отсутствие ошибок/исключений во время выполнения, это также доказывает прекращение. Проблема с остановкой говорит только о том, что она не является тривиально разрешимой для всех программ, AFAIK. Для нескольких классов программ это тривиально разрешимо! +1 для упоминания CBMC, хотя это отличный инструмент. –

 Смежные вопросы

  • Нет связанных вопросов^_^