Metody realizacji języków programowania/MRJP Ćwiczenia 12: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania (Zadania) |
|||
Linia 10: | Linia 10: | ||
Rozważmy język ze strukturą blokową i funkcjami lokalnymi (np. wariant Pascala), dopuszczający funkcje jako argumenty i wyniki funkcji. | Rozważmy język ze strukturą blokową i funkcjami lokalnymi (np. wariant Pascala), dopuszczający funkcje jako argumenty i wyniki funkcji. | ||
− | Podaj przykład funkcji dającej w wyniku swoją funkcję lokalną, oraz jej wywołania, które mogą przysporzyć kłopotu przy klasycznej implementacji ze | + | Podaj przykład funkcji dającej w wyniku swoją funkcję lokalną, oraz jej wywołania, które mogą przysporzyć kłopotu przy klasycznej implementacji ze stosem rekordów aktywacji. Wyjaśnij, jaka będzie zawartość stosu po takim wywołaniu i na czym polega problem. |
== Zadanie - szablony i redukcje == | == Zadanie - szablony i redukcje == |
Aktualna wersja na dzień 09:28, 29 wrz 2006
Wstęp
W poniższych zadaniach używamy m.in. następujących definicji funkcji
S f g x = (f x) (g x) K x y = x main = S K K 7
Zadanie - zmienne nielokalne
Rozważmy język ze strukturą blokową i funkcjami lokalnymi (np. wariant Pascala), dopuszczający funkcje jako argumenty i wyniki funkcji. Podaj przykład funkcji dającej w wyniku swoją funkcję lokalną, oraz jej wywołania, które mogą przysporzyć kłopotu przy klasycznej implementacji ze stosem rekordów aktywacji. Wyjaśnij, jaka będzie zawartość stosu po takim wywołaniu i na czym polega problem.
Zadanie - szablony i redukcje
- Zbuduj szablony dla funkcji main, S, K.
- Prześledź redukcję funkcji main (obliczenie programu)
Zadanie - G-maszyna
- Wygeneruj kod dla funkcji main, S, K.
- Prześledź wykonanie przez G-maszynę kodu dla funkcji main.