Metody realizacji języków programowania/MRJP Ćwiczenia 2: Różnice pomiędzy wersjami
m (→Zadanie 4) |
m (→Zadanie 4) |
||
Linia 15: | Linia 15: | ||
== Zadanie 4 == | == Zadanie 4 == | ||
− | Napisz algorytm wyznaczający klasy dziedziczone przyjmując upraszczajace założenie, że po słowie extends występuje tylko identyfikator - nazwa klasy. | + | Napisz algorytm wyznaczający klasy dziedziczone przyjmując upraszczajace założenie, że po słowie '''extends''' występuje tylko identyfikator - nazwa klasy. |
Aktualna wersja na dzień 04:42, 2 paź 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.
Zadanie 3
Porównaj zasady wiązania wystąpień użytkowych identyfikatorów z wystąpieniami definiującymi odpowiednie identyfikatory obowiązujące w Javie i w C#
Zadanie 4
Napisz algorytm wyznaczający klasy dziedziczone przyjmując upraszczajace założenie, że po słowie extends występuje tylko identyfikator - nazwa klasy.