Jump to content

Сплав (язык спецификации)

(Перенаправлено с Анализатора сплавов )

В информатике и разработке программного обеспечения Alloy представляет собой декларативный язык спецификаций для выражения сложных структурных ограничений и поведения в программной системе . Alloy предоставляет простой инструмент структурного моделирования, основанный на логике первого порядка . [1] Alloy ориентирован на создание микромоделей которых затем можно автоматически проверить , корректность . Характеристики сплавов можно проверить с помощью анализатора сплавов.

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

Язык и анализатор Alloy разработаны командой под руководством Дэниела Джексона из Массачусетского технологического института в США .

История и влияния

[ редактировать ]

Первая версия языка Alloy появилась в 1997 году. Это был довольно ограниченный язык объектного моделирования . Последующие версии языка «добавили кванторы , отношения более высокой арности , полиморфизм , подтипирование и сигнатуры». [2]

Математическая основа языка находилась под сильным влиянием нотации Z , а синтаксис Alloy во многом обязан таким языкам, как Object Constraint Language .

Анализатор сплавов

[ редактировать ]
Анализатор сплавов.

Анализатор сплавов был специально разработан для поддержки так называемых «облегченных формальных методов». Таким образом, он предназначен для обеспечения полностью автоматизированного анализа, в отличие от интерактивных методов доказательства теорем, обычно используемых в языках спецификаций, подобных Alloy. Первоначально анализатор был вдохновлен автоматизированным анализом, обеспечиваемым средствами проверки моделей . Однако проверка моделей плохо подходит для тех моделей, которые обычно разрабатываются в Alloy, и в результате ядро ​​анализатора в конечном итоге было реализовано как средство поиска моделей, построенное на основе логического решателя SAT . [1]

Начиная с версии 3.0, Alloy Analyser включает в себя встроенный инструмент поиска моделей на основе SAT, основанный на стандартном решателе SAT. Однако, начиная с версии 4.0, Анализатор использует средство поиска моделей Kodkod, для которого Анализатор выступает в качестве внешнего интерфейса. Оба средства поиска моделей по существу переводят модель, выраженную в реляционной логике , в соответствующую формулу логической логики , а затем вызывают готовый решатель SAT для обработки булевой формулы. В случае, если решатель находит решение, результат преобразуется обратно в соответствующую привязку констант к переменным в реляционной логической модели. [3]

Чтобы гарантировать разрешимость проблемы поиска модели , Alloy Analyser выполняет поиск модели в ограниченных областях, состоящих из определяемого пользователем конечного числа объектов. Это приводит к ограничению общности результатов, получаемых анализатором. Однако разработчики Alloy Analyser оправдывают решение работать в ограниченных рамках, апеллируя к гипотезе малого объема : большую часть ошибок можно обнаружить путем тестирования программы для всех тестовых входных данных в небольшом объеме. [4]

Структура модели

[ редактировать ]

Модели сплавов носят реляционный характер и состоят из нескольких типов операторов: [1]

  • Сигнатуры определяют словарь модели путем создания новых наборов.
sig Object{} подписи определяет объект
sig List{ head : lone Node } определяет сигнатуру List поля , которая содержит заголовок типа Node и кратности lone — это устанавливает существование связи между List и Node , так что каждый List связан не более чем с одним головным Node.
  • Факты — это ограничения, которые, как предполагается, всегда выполняются.
  • Предикаты представляют собой параметризованные ограничения и могут использоваться для представления операций.
  • Функции — это выражения, которые возвращают результаты.
  • Утверждения — это предположения о модели.

Поскольку Alloy является декларативным языком, порядок операторов не влияет на значение модели.

  1. ^ Перейти обратно: а б с Джексон, Дэниел (2006). Абстракции программного обеспечения: логика, язык и анализ . МТИ Пресс . ISBN  978-0-262-10114-1 .
  2. ^ «Часто задаваемые вопросы по сплавам» . Архивировано из оригинала 7 июня 2007 года . Проверено 7 марта 2013 г.
  3. ^ Торлак, Э. ; Деннис, Г. (апрель 2008 г.). «Кодкод для пользователей сплавов» (PDF) . Первый цех сплавов ACM . Портленд, Орегон. Архивировано из оригинала (PDF) 22 июня 2010 года . Проверено 19 апреля 2009 г.
  4. ^ Андони, Александр; Данилюк, Дмитрий; Хуршид, Сарфраз; Маринов, Дарко (2002). «Оценка гипотезы малого масштаба» CiteSeerX   10.1.1.8.7702 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4193c1971b958df059349db17171eede__1690225860
URL1:https://arc.ask3.ru/arc/aa/41/de/4193c1971b958df059349db17171eede.html
Заголовок, (Title) документа по адресу, URL1:
Alloy (specification language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)