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 stosemrekordów aktywacji. Wyjaśnij, jaka będzie zawartość stosu po takim wywołaniu i na czym polega problem.
+
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.