SW wykład 6 - Slajd11: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 3: | Linia 3: | ||
Zmieniamy też w dość oczywisty sposób funkcję semantyczną dla | Zmieniamy też w dość oczywisty sposób funkcję semantyczną dla | ||
instrukcji: w danym środowisku zmiennych i procedur | instrukcji: w danym środowisku zmiennych i procedur wyznacza ona | ||
przekształcenie stanów w stany (dopuszczając możliwości sygnalizacji | przekształcenie stanów w stany (dopuszczając możliwości sygnalizacji | ||
błędu). Znów jednak | błędu). Znów jednak większość klauzul dla konstrukcji budujących | ||
instrukcje zachowuje dotyczczasową postać, operując na stanach | instrukcje zachowuje dotyczczasową postać, operując na stanach | ||
dokładnie tak, jak dotychczas na składach. Warto może przejrzeć kilka | dokładnie tak, jak dotychczas na składach. Warto może przejrzeć kilka | ||
Linia 16: | Linia 16: | ||
przede wszystkim klauzuli dla instrukcji przypisania. Modyfikacje te | przede wszystkim klauzuli dla instrukcji przypisania. Modyfikacje te | ||
jednak są proste: operacje na składach w poprzednich klauzulach trzeba | jednak są proste: operacje na składach w poprzednich klauzulach trzeba | ||
tu po prostu powtórzyć wydobywając skład ze struktury stanu i | tu po prostu powtórzyć, wydobywając skład ze struktury stanu i | ||
odpowiednio umieszczając go znów w tej strukturze. Pozostałe składowe | odpowiednio umieszczając go znów w tej strukturze. Pozostałe składowe | ||
stanu nie ulegają tu zmianie. | stanu nie ulegają tu zmianie. | ||
Linia 24: | Linia 24: | ||
Semantyka instrukcji wejścia jest oczywista. W danym środowisku i | Semantyka instrukcji wejścia jest oczywista. W danym środowisku i | ||
stanie | stanie najpierw wydobywamy ze środowiska lokację zmiennej, na którą | ||
chcemy wczytać wartość liczbową z wejścia. Następnie wyodrębniamy z | chcemy wczytać wartość liczbową z wejścia. Następnie wyodrębniamy z | ||
potoku wejściowego pierwszy element i resztę tego potoku. Wynikiem | potoku wejściowego pierwszy element i resztę tego potoku. Wynikiem |
Aktualna wersja na dzień 15:36, 29 wrz 2006
Parametry Semantyka procedur Semantyka procedur, c.d. Semantyka procedur bezparametrowych Przekazywanie przez zmienną Przekazywanie przez wartość Przekazywanie przez nazwę Wejście/wyjście Semantyka wejścia/wyjścia Semantyka wejścia/wyjścia, c.d. Semantyka wejścia/wyjścia, c.d. Programy Problem Nowe podejście Kontynuacje

Zmieniamy też w dość oczywisty sposób funkcję semantyczną dla instrukcji: w danym środowisku zmiennych i procedur wyznacza ona przekształcenie stanów w stany (dopuszczając możliwości sygnalizacji błędu). Znów jednak większość klauzul dla konstrukcji budujących instrukcje zachowuje dotyczczasową postać, operując na stanach dokładnie tak, jak dotychczas na składach. Warto może przejrzeć kilka tych klauzul, by przekonać się, że rzeczywiście nie wymagają one zmiany.
Wyjątkiem są tu oczywiście klauzule, które bezpośrednio modyfikują składy lub wykorzystują je istotnie jako funkcje. Dotyczy to deklaracji zmiennych, deklaracji i wywołań procedur z parametrami, a przede wszystkim klauzuli dla instrukcji przypisania. Modyfikacje te jednak są proste: operacje na składach w poprzednich klauzulach trzeba tu po prostu powtórzyć, wydobywając skład ze struktury stanu i odpowiednio umieszczając go znów w tej strukturze. Pozostałe składowe stanu nie ulegają tu zmianie.
Oczywiście, dodajemy też klauzule dla instrukcji wejścia i wyjścia, które właśnie służą modyfikacji tych dwóch składowych stanów.
Semantyka instrukcji wejścia jest oczywista. W danym środowisku i stanie najpierw wydobywamy ze środowiska lokację zmiennej, na którą chcemy wczytać wartość liczbową z wejścia. Następnie wyodrębniamy z potoku wejściowego pierwszy element i resztę tego potoku. Wynikiem jest stan, w którym modyfikujemy skład przez przypisanie wydobytej lokacji pierwszego elementu wejścia, potok wejściowy zastępujemy jego resztą, a potok wyjściowy pozostaje bez zmiany. Oczywiście, jeśli zmienna w danym środowisku nie oznacza lokacji, albo z potoku wejściowego nie da się wydobyć pierwszego elementu, to generowany jest sygnał błędu.
Jeszcze prostsza jest semantyka instrukcji wyjścia: w danym środowisku i stanie wyliczamy wartość wyrażenia i tę wartość dopisujemy do potoku wyjściowego w wynikowym stanie, jego skład i potok wejściowy pozostawiając niezmienione.