Объединение теорий программирования
Унификация теорий программирования ( UTP ) в информатике занимается семантикой программ . Он показывает, как денотатационная семантика , операционная семантика и алгебраическая семантика могут быть объединены в единую структуру для формальной спецификации , проектирования и реализации программ и компьютерных систем .
Книга под этим названием, написанная К. А. Хоаром и Хэ Цзифэном, была опубликована в международной серии Prentice Hall по информатике в 1998 году и теперь находится в свободном доступе в Интернете. [1]
Теории
[ редактировать ]Семантической основой UTP является исчисление предикатов первого порядка , дополненное конструкциями с фиксированной точкой из логики второго порядка. Следуя традиции Эрика Хенера , программы являются предикатами в UTP, и на семантическом уровне нет различия между программами и спецификациями. По словам Хоара :
Компьютерная программа идентифицируется самым сильным предикатом, описывающим все соответствующие наблюдения, которые можно сделать о поведении компьютера, выполняющего эту программу. [2]
На языке UTP теория — это модель конкретной парадигмы программирования. Теория UTP состоит из трех компонентов:
- алфавит , который представляет собой набор имен переменных , обозначающих атрибуты парадигмы, которые может наблюдать внешний объект;
- подпись ; , которая представляет собой набор конструкций языка программирования, присущих парадигме и
- набор условий работоспособности , которые определяют пространство программ, соответствующих парадигме. Эти условия работоспособности обычно выражаются как монотонные идемпотентные преобразователи предикатов .
Уточнение программы является важной концепцией в UTP. Программа уточняется тогда и только тогда, когда каждое наблюдение, которое можно сделать из также является наблюдением .Определение уточнения является общим для всех теорий UTP:
где обозначает [3] универсальное замыкание всех переменных в алфавите.
Отношения
[ редактировать ]Самая основная теория UTP — это алфавитное исчисление предикатов, которое не имеет ограничений по алфавиту или условий работоспособности. Теория отношений немного более специализирована, поскольку алфавит отношения может состоять только из:
- недекорированные переменные ( ), моделирование наблюдения за программой в начале ее выполнения; и
- штрихованные переменные ( ), моделируя наблюдение за программой на более позднем этапе ее выполнения.
Некоторые общеязыковые конструкции можно определить в теории отношений следующим образом:
- Оператор пропуска, который никак не изменяет состояние программы, моделируется как реляционная идентичность:
- Присвоение значения в переменную моделируется как установка к и сохраняя все остальные переменные (обозначенные ) постоянный:
- Последовательная композиция двух программ — это просто реляционная композиция промежуточного состояния:
- Недетерминированный выбор между программами является их наивысшей нижней границей:
- Условный выбор между программами записывается в инфиксной записи:
- Семантика рекурсии определяется наименьшей фиксированной точкой. монотонного преобразователя предикатов :
Ссылки
[ редактировать ]- ^ Хоар, Африка ; Цзифэн, Хэ (1 апреля 1998 г.). Объединение теорий программирования . Прентис Холл. п. 320. ИСБН 978-0-13-458761-5 . Проверено 17 сентября 2014 г.
- ^ Хоар, ЦАР (апрель 1984 г.). «Программирование: волшебство или наука?». Программное обеспечение IEEE . 1 (2): 5–16. дои : 10.1109/MS.1984.234042 . S2CID 375578 .
- ^ Дейкстра, Эдсгер В .; Схолтен, Карел С. (1990). Исчисление предикатов и семантика программ . Тексты и монографии по информатике. Спрингер. ISBN 0-387-96957-8 .
Дальнейшее чтение
[ редактировать ]- Вудкок, Джим ; Кавальканти, Ана (2004). «Введение в дизайн в Unifying Theory of Programming» (PDF) . Интегрированные формальные методы . Конспекты лекций по информатике , стр. Том. 2999. Спрингер. стр. 40–66. дои : 10.1007/978-3-540-24756-2_4 . ISBN 978-3-540-21377-2 .
- Кавальканти, Ана; Вудкок, Джим (2006). «Введение в CSP в унификации теорий программирования» (PDF) . Методы совершенствования в программной инженерии . Конспекты лекций по информатике. Том. 3167. Спрингер. стр. 220–268. дои : 10.1007/11889229_6 . ISBN 978-3-540-46253-8 .