Metody realizacji języków programowania/MRJP Ćwiczenia 2: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Salwicki (dyskusja | edycje)
Nie podano opisu zmian
Salwicki (dyskusja | edycje)
Linia 3: Linia 3:
== Zadanie 1 ==
== Zadanie 1 ==


Skonstruuj przykład programu w wybranym przez Ciebie języku programowania w taki sposób, by dla pewnego wystąpienia identyfikatora ''Coto'' mozna było wskazać co najmniej cztery różne deklaracje tego identyfikatora. Jedna z tych deklaracji może opisywać identyfikator ''Coto'' jako zmienną, druga jako klasę, trzecia jako tablicę,...
Zrób to tak by usuwanie kolejnych deklaracji tego identyfikatora zmieniało sens programu lub wynik kompilacji.
== Zadanie 2 ==
Napisz algorytm przeszukiwania grafu tablicy symboli.
Napisz algorytm przeszukiwania grafu tablicy symboli.
Dla danego identyfikatora ''id'' oraz węzła ''w'' znajdź węzeł ''v'' zawierajacy deklarację identyfikatora ''v''. Wrzuć wyjątek "''Brak deklaracji''" jeśli nie istnieje węzeł ''v'' zawierający deklarację identyfikatora ''id'' widoczną w module węzła ''w''.
Dla danego identyfikatora ''id'' oraz węzła ''w'' znajdź węzeł ''v'' zawierajacy deklarację identyfikatora ''v''. Wrzuć wyjątek "''Brak deklaracji''" jeśli nie istnieje węzeł ''v'' zawierający deklarację identyfikatora ''id'' widoczną w module węzła ''w''.

Wersja z 08:10, 28 wrz 2006

autor Andrzej Salwicki (salwicki@mimuw.edu.pl)

Zadanie 1

Skonstruuj przykład programu w wybranym przez Ciebie języku programowania w taki sposób, by dla pewnego wystąpienia identyfikatora Coto mozna było wskazać co najmniej cztery różne deklaracje tego identyfikatora. Jedna z tych deklaracji może opisywać identyfikator Coto jako zmienną, druga jako klasę, trzecia jako tablicę,...

Zrób to tak by usuwanie kolejnych deklaracji tego identyfikatora zmieniało sens programu lub wynik kompilacji.

Zadanie 2

Napisz algorytm przeszukiwania grafu tablicy symboli. Dla danego identyfikatora id oraz węzła w znajdź węzeł v zawierajacy deklarację identyfikatora v. Wrzuć wyjątek "Brak deklaracji" jeśli nie istnieje węzeł v zawierający deklarację identyfikatora id widoczną w module węzła w.