Jednoczące teorie programowania

Unifying Theories of Programming ( UTP ) w informatyce zajmuje się semantyką programów . Pokazuje, w jaki sposób semantykę denotacyjną , semantykę operacyjną i semantykę algebraiczną w jednolite ramy formalnej specyfikacji , projektowania i wdrażania programów i systemów komputerowych .

Książka pod tym tytułem, napisana przez CAR Hoare i He Jifenga, została opublikowana w Prentice Hall International Series in Computer Science w 1998 roku i jest obecnie dostępna bezpłatnie w Internecie.

teorie

Podstawą semantyczną UTP jest rachunek predykatów pierwszego rzędu , uzupełniony o konstrukcje punktu stałego z logiki drugiego rzędu. Zgodnie z tradycją Erica Hehnera programy są predykatami w UTP i nie ma rozróżnienia między programami a specyfikacjami na poziomie semantycznym . Słowami Hoare'a :

Program komputerowy jest identyfikowany z najsilniejszym predykatem opisującym każdą istotną obserwację, jaką można poczynić na temat zachowania komputera wykonującego ten program.

W żargonie UTP teoria jest modelem określonego paradygmatu programowania. Teoria UTP składa się z trzech składników:

  • alfabet , który jest zbiorem nazw zmiennych oznaczających atrybuty paradygmatu, które mogą być obserwowane przez podmiot zewnętrzny ;
  • podpis , który jest zbiorem konstrukcji języka programowania nieodłącznym dla paradygmatu ; I
  • zbiór warunków zdrowotnych , które określają przestrzeń programów mieszczących się w paradygmacie. Te warunki kondycji są zwykle wyrażane jako monotoniczne idempotentne transformatory predykatów .

Udoskonalenie programu jest ważną koncepcją w UTP. Program jest udoskonalany przez gdy każda obserwacja, której można dokonać, również obserwacją P. . Definicja udoskonalenia jest wspólna dla teorii UTP:

gdzie uniwersalne zmiennych w alfabecie

Relacje

Najbardziej podstawową teorią UTP jest alfabetyczny rachunek predykatów, który nie ma ograniczeń alfabetycznych ani warunków zdrowotnych. Teoria relacji jest nieco bardziej wyspecjalizowana, gdyż alfabet relacji może składać się tylko z:

  • zmienne nieozdobione ( modelujące obserwację programu na początku jego wykonywania; I
  • zmienne primowane ( programu na późniejszym etapie jego wykonywania

Niektóre wspólne konstrukcje językowe można zdefiniować w teorii relacji w następujący sposób:

  • Instrukcja skip, która w żaden sposób nie zmienia stanu programu, jest modelowana jako tożsamość relacyjna:

  • Przypisanie wartości jest modelowane jako ustawienie mi i zachowanie wszystkich innych zmiennych (oznaczonych przez ) stała:

  • Niedeterministyczny wybór między programami jest ich największą dolną granicą:

  • Semantyka rekurencji jest określona przez ustalony punkt monotonicznego transformatora predykatu : :

Dalsza lektura

Linki zewnętrzne