SW wykład 7 - Slajd4: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
{{Semantyka i weryfikacja programów/Wykład 7}} | {{Semantyka i weryfikacja programów/Wykład 7}} | ||
[[Grafika:sw0703.png|center|frame]] | [[Grafika:sw0703.png|center|frame]] | ||
Rozpoczynamy od definicji dziedzin semantycznych. Wiele z nich | |||
(dziedziny liczb całkowitych, wartości logicznych, lokacji, składów, | |||
środowisk dla zmiennych), pozostają niezmienione. | |||
Dziedzina potoków wejściowych obejmuje skończone (zakończone | |||
znacznikiem <b>eof</b>) i nieskończone ciągi liczb | |||
całkowitych. Dziedzina stanów to dziedzina par złożonych ze składu i | |||
potoku wejściowego. Dziedzina potoków wyjściowych to znów dziedzina | |||
skończonych i nieskończonych ciągów liczb całkowitych, ale tym razem | |||
na końcu takiego (skończonego) ciągu może pojawić się albo znacznik | |||
końca <b>eof</b>, albo sygnał błędu. | |||
Centralną rolę odgrywać będą oczywiście dziedziny | |||
kontynuacji. Kontynuacje podstawowe, dla instrukcji, to funkcje ze | |||
stanów w potoki wyjściowe. Kontynuacje dla wyrażeń arytmetycznych to | |||
funkcje z liczb całkowitych w kontynuacje (dla instrukcji). Podobnie, | |||
kontynuacje dla wyrażeń logicznych to funkcje z wartości logicznych w | |||
kontynuacje (dla instrukcji). Dalej, kontynuacje dla deklaracji | |||
zmiennych to funkcje ze środowisk zmiennych w kontynuacje (dla | |||
instrukcji). I w końcu kontynuacje dla deklaracji procedur to funkcje | |||
ze środowisk procedur w kontynuacje (dla instrukcji). | |||
Inaczej --- choć podobnie, bo zachowana zostanie zgodność ze | |||
znaczeniami instrukcji --- niż dotychczas definiujemy dziedzinę | |||
znaczeń procedur bezparametrowych: są to funkcje z kontynuacji w | |||
kontynuacje (dla instrukcji). Znaczenia procedur z jednym parametrem | |||
przekazywanym przez zmienną to funkcje z lokacji w znaczenia procedur | |||
bezparametrowych. I w końcu, środowiska procedur (jak dotychczas) to | |||
funkcje przyporządkowujące identyfikatorom procedur ich znaczenia (lub | |||
sygnał błędu). |
Wersja z 13:07, 28 wrz 2006
Kontynuacje Kontynuacje wyrażeń i deklaracji Tiny+++ Dziedziny semantyczne Funkcje semantyczne Przykłady klauzul [[SW_wykład_7_-_Slajd7|Przykłady klauzul, c.d.] Instrukcje Bloki Skoki Semantyka skoków Semantyka skoków, c.d. Semantyka skoków, c.d. Semantyka skoków, c.d. Semantyka "standardowa"

Rozpoczynamy od definicji dziedzin semantycznych. Wiele z nich (dziedziny liczb całkowitych, wartości logicznych, lokacji, składów, środowisk dla zmiennych), pozostają niezmienione.
Dziedzina potoków wejściowych obejmuje skończone (zakończone znacznikiem eof) i nieskończone ciągi liczb całkowitych. Dziedzina stanów to dziedzina par złożonych ze składu i potoku wejściowego. Dziedzina potoków wyjściowych to znów dziedzina skończonych i nieskończonych ciągów liczb całkowitych, ale tym razem na końcu takiego (skończonego) ciągu może pojawić się albo znacznik końca eof, albo sygnał błędu.
Centralną rolę odgrywać będą oczywiście dziedziny kontynuacji. Kontynuacje podstawowe, dla instrukcji, to funkcje ze stanów w potoki wyjściowe. Kontynuacje dla wyrażeń arytmetycznych to funkcje z liczb całkowitych w kontynuacje (dla instrukcji). Podobnie, kontynuacje dla wyrażeń logicznych to funkcje z wartości logicznych w kontynuacje (dla instrukcji). Dalej, kontynuacje dla deklaracji zmiennych to funkcje ze środowisk zmiennych w kontynuacje (dla instrukcji). I w końcu kontynuacje dla deklaracji procedur to funkcje ze środowisk procedur w kontynuacje (dla instrukcji).
Inaczej --- choć podobnie, bo zachowana zostanie zgodność ze znaczeniami instrukcji --- niż dotychczas definiujemy dziedzinę znaczeń procedur bezparametrowych: są to funkcje z kontynuacji w kontynuacje (dla instrukcji). Znaczenia procedur z jednym parametrem przekazywanym przez zmienną to funkcje z lokacji w znaczenia procedur bezparametrowych. I w końcu, środowiska procedur (jak dotychczas) to funkcje przyporządkowujące identyfikatorom procedur ich znaczenia (lub sygnał błędu).