Książka

Denotacyjna inżynieria języków programowania, preprint 2019   Pobierz.

DOI: 10.13140/RG.2.2.12561.07527

Istnieje również wersja angielska:

A Denotational Engineering of Programming Languages, preprint 2019 Pobierz

DOI  10.13140/RG.2.2.27499.39201/3

Aktualnie książka stanowi najbogatsze źródło wiedzy o projekcie i jest poświęcona dwóm obszarom badawczym:

  1. Projektowanie języków programowania wraz z ich modelem denotacyjnym. Na denotacyjny model języka programowania składają się trzy algebry: algebra denotacji, algebra składni abstrakcyjnej (drzew parsingu) i algebra składni konkretnej (składni programisty). Model jest budowany w taki sposób, aby istniał homomorfizm ze składni konkretnej w denotacje, który stanowi semantykę denotacyjną tej składni. Ten efekt jest osiągany przez zdefiniowanie algebry denotacji w pierwszym rzędzie, by później wygenerować z niej składnię.
  2. Tworzenie zdrowych konstruktorów programów w językach z semantyką denotacyjną. W moim ujęciu programy składniowo zawierają swoje specyfikacje w sensie całkowitej poprawności z czystą terminacją (bez komunikatu błędu). Program nazywamy poprawnym, gdy jest poprawny względem zawartej w nim specyfikacji. Konstruktor programów jest zdrowy, gdy z programów poprawnych tworzy programy poprawne.

Obie metody są ilustrowane na przykładzie wirtualnego języka Lingua.

Aspekt 1. jest również skrótowo przedstawiony w pracy opisanej na stronie On the development of a denotational model.