Унифицированные теории программирования ( UTP ) в информатике занимаются семантикой программ . Они показывают, как денотационная семантика , операционная семантика и алгебраическая семантика могут быть объединены в единую структуру для формальной спецификации , проектирования и реализации программ и компьютерных систем .
Книга с таким названием, написанная К. А. Р. Хоаром и Хе Цзифэном, была опубликована в серии Prentice Hall International по информатике в 1998 году и теперь свободно доступна в Интернете. [1]
Теории
Семантическая основа UTP — исчисление предикатов первого порядка , дополненное конструкциями с фиксированной точкой из логики второго порядка. Следуя традиции Эрика Хенера , программы являются предикатами в UTP, и на семантическом уровне нет различия между программами и спецификациями. По словам Хоара :
Компьютерная программа идентифицируется с самым сильным предикатом, описывающим каждое соответствующее наблюдение, которое может быть сделано относительно поведения компьютера, выполняющего эту программу. [2]
В терминологии UTP теория — это модель определенной парадигмы программирования. Теория UTP состоит из трех компонентов:
- алфавит , представляющий собой набор имен переменных , обозначающих атрибуты парадигмы, которые может наблюдать внешняя сущность;
- сигнатура , которая представляет собой набор конструкций языка программирования, присущих парадигме; и
- набор условий работоспособности , которые определяют пространство программ, которые вписываются в парадигму. Эти условия работоспособности обычно выражаются как монотонные идемпотентные предикатные трансформаторы .
Уточнение программы является важной концепцией в UTP. Программа утончается, если и только если каждое наблюдение, которое может быть сделано, также является наблюдением . Определение утончения является общим для теорий UTP:
где обозначает [3] универсальное замыкание всех переменных в алфавите.
Отношения
Самая базовая теория UTP — это алфавитное исчисление предикатов, которое не имеет ограничений по алфавиту или условий работоспособности. Теория отношений немного более специализирована, поскольку алфавит отношения может состоять только из:
- недекорированные переменные ( ), моделирующие наблюдение за программой в начале ее выполнения; и
- начальные переменные ( ), моделирующие наблюдение за программой на более позднем этапе ее выполнения.
Некоторые общие языковые конструкции можно определить в теории отношений следующим образом:
- Оператор пропуска, который никак не изменяет состояние программы, моделируется как реляционная идентичность:
- Присвоение значения переменной моделируется как установка и сохранение всех других переменных (обозначаемых ) постоянными:
- Недетерминированный выбор между программами — это их наибольшая нижняя граница:
- Условный выбор между программами записывается с использованием инфиксной нотации:
- Семантика рекурсии задается наименьшей неподвижной точкой монотонного предикатного трансформатора :
Ссылки
Дальнейшее чтение
- Вудкок, Джим ; Кавальканти, Ана (2004). "Учебное введение в проекты в унифицированных теориях программирования" (PDF) . Интегрированные формальные методы . Конспект лекций по информатике , страницы. Том 2999. Springer. С. 40–66. doi :10.1007/978-3-540-24756-2_4. ISBN 978-3-540-21377-2.
- Кавальканти, Ана; Вудкок, Джим (2006). "Учебное введение в CSP в унификации теорий программирования" (PDF) . Методы уточнения в программной инженерии . Конспект лекций по информатике. Том 3167. Springer. С. 220–268. doi :10.1007/11889229_6. ISBN 978-3-540-46253-8.
Внешние ссылки