MATEMATYCZNE METODY DEFINIOWANIA JĘZYKÓW PROGRAMOWANIA
P. Dembiński
J. Małuszyński
- WNT, 1981
- Oprawa: miękka z obwolutą
- Stron: 198
- Stan: bardzo dobry, nieaktualne pieczątki
W książce podano podstawowe pojęcia związane z opisem i definiowaniem języków programowania. Przedstawiono formalizmy opisu składni — gramatyki bezkontekstowe i gramatyki dwupoziomowe — a następnie metody formalizacji opisu semantyki — od metod związanych z maszyną, poprzez semantykę denotacyjną w ujęciu Scotta-Strachcya do metody aksjomatycznej. Następnie pokazano powiązania formalizmu opisu składni z formalizmem opisu semantyki języków programowania.
Podstawą wykładu jest przykładowy język programowania PJP. Metody definiowania języków programowania zostały ujęte jednolicie, co umożliwia ich porównanie; pozwala to m. in. zorientować się w zakresie ich zastosowań.
Książka jest przeznaczona dla programistów, projektantów systemów przetwarzania informacji, projektantów oprogramowania, pracowników nauki zajmujących się informatyką oraz dla studentów kierunków informatycznych.
SPIS TREŚCI:
Przedmowa
1. Wstęp Jan Maluszyński
11 Algorytmy i programy
12 Potrzeba formalizacji opisu języka programowania
13 Różne podejścia do problemu definiowania semantyki — przykład.
2 Metody definiowania składni Jan Maluszyński
21 Języki i gramatyki generacyjne
22 Gramatyki bezkontekstowe
23 Zastosowanie gramatyk bezkontekstowych do opisu języków programowania
2.31 Notacja Backusa-Naura (BNF)
2.32 Przykładowy język programowania PJP
2.33 Zalety i ograniczenia gramatyk bezkontekstowych jako narzędzia definiowania języków programowania
24 Gramatyki dwupoziomowe
2.41 Pojęcie gramatyki dwupoziomowej
2.42 Opis podzbioru P języka PJP za pomocą gramatyki dwupoziomowej
2.43 Zalety i wady gramatyk dwupoziomowych jako narzędzia definiowania języków programowania
25 Składnia abstrakcyjna języków programowania
2.51 Składnia konkretna a składnia abstrakcyjna
2.52 Metody wiedeńskie definiowania składni abstrakcyjnej
2.6 Uwagi bibliograficzne %
3 Metody definiowania semantyki Piotr Dembiński
31 Maszyna, język i implementacja
3.11 Pojęcie maszyny
3.12 Implementacja bezpośrednia języka programowania: interpretacja i kompilacja
3.13 Środowisko komputerowe (maszynowe): zmienne, wartości i stany
3.2 Metoda operacyjna definiowania semantyki .
3.21 Metoda operacyjna a implementacja bezpośrednia
3.22 Metoda wiedeńska opisu semantyki jako przykład metody operacyjnej
3.23 Systemy produkcji semantycznej
3.24 Uogólnione systemy produkcji semantycznych
33 Metoda definiowania semantyki przez punkty stałe
3.31 Układy równań i ich rozwiązania
3.32 Metoda punktu stałego a metoda operacyjna
34 Metoda denotacyjna i zgodność semantyk określonych różnymi metodami
3.41 Metoda denotacyjna
3.42 Zgodność i równoważność opisów semantycznych
35 Rozszerzenia: semantyka wybranych konstrukcji w językach programowania •
3.51 Skoki i kontynuacje
3.52 Struktura blokowa programów
3.53 Procedury
3.54 Procedury rekurencyjne
3.55 Procedury i kontynuacje
3.56 Instrukcje wejścia/wyjścia
3.57 Typy danych
36 Aksjomatyczna metoda definiowania semantyki
3.61 Teorie sformalizowane i teorie sformalizowane pierwszego rzędu
dla języków programowania
3.62 System wnioskowania Hoare'a dla programów iteracyjnych .
3.63 System wnioskowania dla programów ze strukturą blokową i
procedurami nierekurencyjnymi
3.64 System wnioskowania dla procedur rekurencyjnych
37 Semantyka sterowania składnią i technika atrybutowa opisu se- mantycznnego
3.71 Gramatyki atrybutowe
3.72 Zastosowanie gramatyk atrybutowych do definiowania semantyki
3.73 Gramatyki atrybutowe a gramatyki dwupoziomowe
3.8 Uwagi bibliograficzne
4. Algebraiczne sformułowanie problemu opisu języka programowania Piotr Dembiński
41 Składnia i semantyka języków programowania w ujęciu algebraicznym \
42 Abstrakcyjne typy danych a algebraiczna specyfikacja języka programowania . .
43 Uwagi bibliograficzne i
Dodatek. Podstawowe pojęcia matematyczne
Literatura
Skorowidz