SW wykład 5 - Slajd1: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Tarlecki (dyskusja | edycje)
Nie podano opisu zmian
Dorota (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 17: Linia 17:
Zaczniemy od jednego z najbardziej oczywistych, powszechnie znanych i
Zaczniemy od jednego z najbardziej oczywistych, powszechnie znanych i
stosowanych rozszerzeń: wprowadzamy do języka TINY bloki z
stosowanych rozszerzeń: wprowadzamy do języka TINY bloki z
deklaracjami lokalnych zmiennych. Rozszerzamy syntaktykę języka TINY
deklaracjami lokalnych zmiennych. Rozszerzamy syntaktykę języka TINY,
dodając nową konstrukcję dla instrukcji: instrukcję bloku, która
dodając nową konstrukcję dla instrukcji: instrukcję bloku, która
składa się z ciągu deklaracji zmiennych i z instrukcji --- ciała bloku
składa się z ciągu deklaracji zmiennych i z instrukcji --- ciała bloku

Aktualna wersja na dzień 13:36, 29 wrz 2006

<<powrót do strony wykładu

Bloki i deklaracje Lokacje Funkcje semantyczne Konwencje notacyjne Instrukcje Klauzule semantyczne Klauzule semantyczne, c.d. Deklaracje Deklaracje, c.d. Semantyka bloków Procedury Wiązania zmiennych Semantyka Tiny++ Semantyka Tiny++ Rekurencja Semantyka procedur rek. Semantyka procedur rek.

Przedstawiona w poprzednim module semantyka języka TINY pokazała tylko naprawdę najprostsze idee i techniki semantyki denotacyjnej. Nic w tym dziwnego: sam język był bardzo prościutki. Przedstawimy teraz kolejno kilka wzbogaceń języka TINY, rozszerzając go o kolejne konstrukcje językowe. Wykorzystamy to do pokazania standardowych metod opisu semantyki (denotacyjnej) dla tych konstrukcji. Z jednej strony dostarczy to kilku podstawowych narzędzi dla opisu znanych i oczekiwanych konstrukcji językowych, do których można się wprost odwoływać budując semantykę bardziej złożonych i bliższych praktyce języków. Z drugiej zaś, ilustrować to będzie kierunki możliwych modyfikacji i rozszerzania denotacyjnego podejścia do opisu semantyki języków programowania.

Zaczniemy od jednego z najbardziej oczywistych, powszechnie znanych i stosowanych rozszerzeń: wprowadzamy do języka TINY bloki z deklaracjami lokalnych zmiennych. Rozszerzamy syntaktykę języka TINY, dodając nową konstrukcję dla instrukcji: instrukcję bloku, która składa się z ciągu deklaracji zmiennych i z instrukcji --- ciała bloku --- wspólnie ujętych w "nawiasy" begin ... end. Dodajemy więc też nową kategorię składniową: deklaracje zmiennych, które są po prostu ciągami (być może pustymi) nazw deklarowanych zmiennych (opatrzonych słowem kluczowym var). Deklaracja zmiennej w bloku udostępnia ją instrukcji ciała tego bloku i jest niewidoczna na zewnątrz. Zatem jej modyfikacje nie mają bezpośredniego wpływu na wartości zmiennych wcześniej zadeklarowanych. W szczególności, jeśli zmienna o tej samej nazwie była już uprzednio zadeklarowana, to ta "zewnętrzna" zmienna przestaje być czasowo widoczna we wnętrzu bloku --- a pojawia się niejako ponownie po zakończeniu realizacji tego bloku.