Язык моделирования Java для C? - PullRequest
3 голосов
/ 06 октября 2010

Я помню, что читал что-то о языке формальной спецификации для C некоторое время назад, но не могу найти его сейчас, когда мне это нужно.

Это было вдохновлено JML, используя, насколько я видел, то же самоесинтаксис.

Единственное упоминание о нем, которое я нашел, - это бумага , но то, о чем я говорю, было более отточенным, чем это.

Если это звучит для вас звонком.

Если никто не знает об этом, я буду рад услышать о способе формальной проверки и автоматической генерации тестов в C.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 13 октября 2010

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

JML для функциональных требований программ Java (хорошо, строка размыта, но я думаю, что статья CML использует слово в том же смысле, что и это предложение). Эквивалент JML для программ на C (следовательно, также исключительно для функциональных требований): ACSL .

Для формальной проверки я могу только рекомендовать Frama-C (отказ от ответственности: я работаю над Frama-C, но не над частью, которая имеет отношение к спецификациям ACSL). Что касается генерации тестов для программ на C, я слышал хорошие новости о CUTE .

0 голосов
/ 10 февраля 2011

Существует как минимум 4 системы верификации для C:

  1. Эшер C Verifier.[Я связан с этим.]
  2. Microsoft VCC .
  3. Frama-C с плагином Jessie (доступно на Debian / Ubuntu впакет frama-c. Вам также нужно установить why, чтобы Джесси работала)
  4. VeriFast .

(1) предназначен для обеспечения безопасности-критические программы на C, написанные на MISRA-C или аналогичные.(2) предназначен для многопоточных систем, построенных с использованием компиляторов Microsoft C.Я знаю гораздо меньше о (3) и (4).

0 голосов
/ 10 ноября 2010

Формальная спецификация "для" C?

Я знаю о работе, чтобы формально указать C: Денотационная семантика для C .

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

...