Jump to content

Алгебраическая спецификация

Алгебраическая спецификация [1] [2] [3] [4] — это метод разработки программного обеспечения для формального определения поведения системы. Примерно в 1980 году это был очень активный предмет исследований в области компьютерных наук. [5]

Алгебраическая спецификация направлена ​​на систематическую разработку более эффективных программ за счет:

  1. формальное определение типов данных и математические операции над этими типами данных.
  2. абстрагирование деталей реализации, таких как размер представлений (в памяти) и эффективность получения результатов вычислений.
  3. формализация вычислений и операций над типами данных
  4. возможность автоматизации путем формального ограничения операций этим ограниченным набором поведений и типов данных.

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

  1. Функции-конструкторы : функции, которые создают или инициализируют элементы данных или конструируют сложные элементы из более простых. спецификации Набор доступных функций-конструкторов подразумевается в сигнатуре . Кроме того, спецификация может содержать уравнения , определяющие эквивалентность между объектами, построенными с помощью этих функций. Является ли базовое представление идентичным для разных, но эквивалентных конструкций, зависит от реализации.
  2. Дополнительные функции : функции, которые работают с типами данных и определяются в терминах функций-конструкторов.

Рассмотрим формальную алгебраическую спецификацию логического типа данных.

Одна из возможных алгебраических спецификаций может предоставить две функции-конструктора для элемента данных: истинный конструктор и ложный конструктор. Таким образом, логический элемент данных может быть объявлен, создан и инициализирован значением. В этом сценарии все остальные соединительные элементы , такие как XOR и AND , будут дополнительными функциями . Таким образом, элемент данных может быть создан со значением «истина» или «ложь», а дополнительные функции могут использоваться для выполнения любой операции с элементом данных.

Альтернативно, вся система логических типов данных может быть указана с использованием другого набора функций-конструкторов: ложного конструктора и конструктора not . В этом случае можно определить дополнительную функцию true , чтобы получить значение, отличное от false , и уравнение следует добавить.

Таким образом, алгебраическая спецификация описывает все возможные состояния элемента данных и все возможные переходы между состояниями. [ нужна ссылка ]

В более сложном примере целые числа можно указать (среди многих других способов и выбрав один из многих формализмов) с помощью двух конструкторов.

  1 : Z
  (_ - _) : Z × Z -> Z

и три уравнения:

            (1 - (1 - p)) = p
      ((1 - (n - p)) - 1) = (p - n)
  ((p1 - n1) - (n2 - p2)) = (p1 - (n1 - (p2 - n2)))

В справедливости уравнений легко убедиться, если принять обычную интерпретацию двоичной функции «минус». (Имена переменных были выбраны, чтобы намекнуть на положительный и отрицательный вклад в значение.) Приложив небольшие усилия, можно показать, что, применяемые слева направо, они также образуют сливающуюся и завершающуюся систему переписывания, отображающую любой сконструированный термин в однозначная нормальная форма, представляющая соответствующее целое число:

  ...
  (((1 - 1) - 1) - 1)
  ((1 - 1) - 1)
  (1 - 1)
  1
  (1 - ((1 - 1) - 1))
  (1 - (((1 - 1) - 1) - 1))
  ...

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

См. также

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

Примечания

[ редактировать ]
  1. ^ Эриг, Хартмут ; Махр, Бернд (1989). Алгебраическая спецификация . Академическая пресса. ISBN  0-201-41635-2 .
  2. ^ Бергстра, Дж.А.; Хиринг, Дж.; Клинт, Дж. (1985). Алгебраическая спецификация . Монографии EATCS по теоретической информатике. Том. 6. Шпрингер-Верлаг.
  3. ^ Вирсинг, Мартин (1990). Ян ван Леувен (ред.). Алгебраическая спецификация . Справочник по теоретической информатике. Том. Б. Эльзевир. стр. 675–788.
  4. ^ Саннелла, Дональд; Тарлецкий, Анджей (2012). Основы алгебраической спецификации и формальной разработки программного обеспечения . Монографии EATCS по теоретической информатике. Спрингер-Верлаг. ISBN  978-3-642-17335-6 .
  5. ^ Вагнер, Эрик Г. (декабрь 2002 г.). «Алгебраические спецификации: немного старой истории и новые мысли» . Северный журнал вычислительной техники . 9 (4): 373–404. ISSN   1236-6064 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6a0d88b29159be8afaedc0f54741dc98__1676965680
URL1:https://arc.ask3.ru/arc/aa/6a/98/6a0d88b29159be8afaedc0f54741dc98.html
Заголовок, (Title) документа по адресу, URL1:
Algebraic specification - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)