Алгебраическая семантика (информатика)
Семантика | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Семантика языки программирования | ||||||||
| ||||||||
В информатике основанная алгебраическая семантика — это форма аксиоматической семантики, на алгебраических законах для формального описания о спецификациях программ и рассуждений . [1] [2] [3] [4]
Синтаксис [ править ]
Синтаксис . алгебраической спецификации формулируется в два этапа: (1) определение формальной сигнатуры типов данных и символов операций и (2) интерпретация сигнатуры через множества и функции
Определение подписи [ править ]
Сигнатура . алгебраической спецификации определяет ее формальный синтаксис Слово «подпись» используется как понятие « ключевая подпись » в нотной записи .
Подпись состоит из набора типов данных , известных как сортировки , вместе с семейством наборов, каждый набор содержит символы операций (или просто символы), которые связывают виды.Мы используем для обозначения набора символов операций, относящихся к сортам в сорте .
Например, для подписи целочисленных стеков мы определяем два вида, а именно: и и следующее семейство символов операций:
где обозначает пустую строку .
Теоретико-множественная интерпретация сигнатуры [ править ]
Алгебра интерпретирует символы видов и операций как множества и функции .Каждый сорт интерпретируется как набор , который называется носителем своего рода , и каждый символ в отображается в функцию называется операцией , что .
Что касается сигнатуры целочисленных стеков, мы интерпретируем сортировку как набор целых чисел и интерпретировать сортировку как набор целочисленных стеков. Далее мы интерпретируем семейство символов операций как следующие функции:
Семантика [ править ]
Семантика относится к значению или поведению . Алгебраическая спецификация обеспечивает как значение, так и поведение объекта рассматриваемого .
Эквациональные аксиомы [ править ]
Семантика алгебраической спецификации определяется аксиомами в форме условных уравнений . [1]
Что касается сигнатуры целочисленных стеков, у нас есть следующие аксиомы:
- Для любого и ,
- где " " означает "не найдено".
- Для любого и ,
Математическая семантика [ править ]
Математическая семантика (также известная как денотатационная семантика ) [5] спецификации относится к ее математическому смыслу.
Математическая семантика алгебраической спецификации — это класс всех алгебр, удовлетворяющих этой спецификации.В частности, классический подход Gogen et al. [1] [2] принимает исходную алгебру ( единственную с точностью до изоморфизма ) как «наиболее представительную» модель алгебраической спецификации.
Операционная семантика [ править ]
Операционная семантика [6] спецификации означает, как интерпретировать ее как последовательность вычислительных шагов.
Мы определяем основной термин как алгебраическое выражение без переменных . слева направо Операционная семантика алгебраической спецификации относится к тому, как основные термины могут быть преобразованы с использованием данных эквациональных аксиом в качестве правил перезаписи , пока такие термины не достигнут своей нормальной формы , где перезапись больше невозможна.
Рассмотрим аксиомы для целочисленных стеков. Позволять " " обозначают "перезаписывает в".
Каноническое свойство [ править ]
Алгебраическая спецификация называется конфлюэнтной (также известной как Черч-Россер ), если переписывание любого основного термина приводит к той же нормальной форме. Говорят, что оно завершается , если переписывание любого основного термина приведет к нормальной форме после конечного числа шагов. Алгебраическая спецификация называется канонической (также известной как сходящаяся ), если она одновременно конфлюэнтна и завершается. Другими словами, оно является каноническим, если переписывание любого основного термина приводит к единственной нормальной форме после конечного числа шагов.
При любой канонической алгебраической спецификации математическая семантика согласуется с операционной семантикой. [7]
В результате канонические алгебраические спецификации стали широко применяться для решения проблем корректности программ. Например, многие исследователи применяли такие спецификации для эквивалентности объектов в программировании проверки объектно -ориентированном . Увидеть Чена и Цзе [8] в качестве вторичного источника , дающего исторический обзор выдающихся исследований с 1981 по 2013 год.
См. также [ править ]
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б с Ж. А. Гоген; Дж. В. Тэтчер; Э.Г. Вагнер; Дж. Б. Райт (1977). «Семантика исходной алгебры и непрерывные алгебры» . Журнал АКМ . 24 (1): 68–95. дои : 10.1145/321992.321997 . S2CID 11060837 .
- ^ Jump up to: Перейти обратно: а б Ж. А. Гоген ; Дж. В. Тэтчер; Э. Г. Вагнер (1978). «Начальный алгебраический подход к спецификации, правильности и реализации абстрактных типов данных». В RT Йе (ред.). Современные тенденции в методологии программирования, Vol. IV: Структурирование данных . Прентис Холл . стр. 80–149.
- ^ Ж. А. Гоген ; К. Киршнер; Х. Киршнер; А. Мегрелис; Дж. Мезегер (1988). «Введение в OBJ3» . Материалы первого семинара по системам переписывания условных терминов . Конспекты лекций по информатике. Том. 308. Спрингер . стр. 258–263. дои : 10.1007/3-540-19242-5_22 . ISBN 978-3-540-19242-8 .
- ^ Ж. А. Гоген ; Дж. Малкольм (1996). Алгебраическая семантика императивных программ . МТИ Пресс . ISBN 9780262071727 .
- ^ Дэвид А. Шмидт (1986). Денотационная семантика: методология развития языка . Издательство Уильяма К. Брауна. ISBN 9780205104505 .
- ^ Гордон Д. Плоткин (1981). «Структурный подход к операционной семантике» (Технический отчет DAIMI FN-19). Кафедра компьютерных наук Орхусского университета .
- ^ С. Лукас; Дж. Мезегер (2014). «Сильное и слабое оперативное прекращение теорий перезаписи с сортировкой по порядку». В С. Эскобаре (ред.). Переписывание логики и ее приложений . Конспекты лекций по информатике. Том. 8663. Чам: Спрингер . стр. 178–194. дои : 10.1007/978-3-319-12904-4_10 . ISBN 978-3-319-12903-7 .
- ^ ХИ Чен; ТД Це (2013). «Равенство равным и неравным: новый взгляд на критерии эквивалентности и неэквивалентности при тестировании объектно-ориентированного программного обеспечения на уровне классов» . Транзакции IEEE по разработке программного обеспечения . 39 (11): 1549–1563. дои : 10.1109/TSE.2013.33 . hdl : 10722/187124 . S2CID 8694513 .