Объединяющие теории программирования - Unifying Theories of Programming

Объединяющие теории программирования (UTP) в Информатика имеет дело с семантика программы. Это показывает, как денотационная семантика, операционная семантика и алгебраическая семантика могут быть объединены в единую структуру для формальная спецификация, разработка и реализация программы и Компьютерные системы.

Книга с таким названием МАШИНА. Hoare и Он Цзифэн был опубликован в Международная серия Prentice Hall по компьютерным наукам в 1998 г. и сейчас находится в свободном доступе в сети.[1]

Теории

Семантическая основа UTP - это исчисление предикатов первого порядка, дополненный конструкциями с фиксированной точкой из логики второго порядка. Следуя традиции Эрик Хенер, программы - это предикаты в UTP, и нет никакого различия между программами и спецификациями на семантическом уровне. По словам Hoare:

Компьютерная программа идентифицируется с помощью самого сильного предиката, описывающего все относящиеся к делу наблюдения, которые могут быть сделаны в отношении поведения компьютера, выполняющего эту программу.[2]

Выражаясь языком UTP, теория представляет собой модель определенной парадигмы программирования. Теория UTP состоит из трех компонентов:

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

Доработка программы является важной концепцией UTP. Программа уточняется тогда и только тогда, когда каждое наблюдение, которое можно сделать также наблюдение Определение уточнения является общим для всех теорий UTP:

куда обозначает[3] то универсальное закрытие всех переменных в алфавите.

связи

Самая основная теория UTP - это алфавитное исчисление предикатов, которое не имеет ограничений по алфавиту или условий здоровья. Теория отношений немного более специализирована, поскольку алфавит отношения может состоять только из:

  • неотмеченные переменные (), моделирующее наблюдение за программой в начале ее выполнения; и
  • штрихованные переменные (), моделируя наблюдение за программой на более позднем этапе ее выполнения.

Некоторые общеязыковые конструкции можно определить в теории отношений следующим образом:

  • Оператор skip, которая никоим образом не изменяет состояние программы, моделируется как реляционная идентичность:

  • Присвоение ценности к переменной моделируется как установка к и сохраняя все остальные переменные (обозначенные ) постоянный:

  • Недетерминированный выбор между программами - их самая нижняя граница:

  • Условный выбор между программами записывается с использованием инфиксной записи:

Рекомендации

  1. ^ Hoare, C.A.R .; Цзифэн, Хэ (1 апреля 1998 г.). Объединяющие теории программирования. Отделение колледжа Прентис Холл. п. 320. ISBN  978-0-13-458761-5. Получено 17 сентября 2014.
  2. ^ МАШИНА. Hoare, Программирование: Колдовство или наука? Программное обеспечение IEEE, 1 (2): 5–16, апрель 1984 г. ISSN  0740-7459. Дои:10.1109 / MS.1984.234042.
  3. ^ Эдсгер В. Дейкстра и Карел С. Шолтен. Исчисление предикатов и семантика программ. Тексты и монографии по информатике. Springer-Verlag New York, Inc., Нью-Йорк, Нью-Йорк, США, 1990. ISBN  0-387-96957-8.

дальнейшее чтение

внешняя ссылка