Metody realizacji języków programowania/MRJP Ćwiczenia 12
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
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.