Zadania na 14.12.2007
Zadanie 1
Zaimplementuj semantyke redukcyjna dla jezyka (1) ISWIM, (2) ISWIM_c. W obu przypadkach zakladamy ewaluacje CBV od lewej do prawej. Umozliw uzytkownikowi obserwowanie pojedynczych krokow redukcji.
Zadanie 2
Zaimplementuj interpreter definiujacy jezyk ISWIM_c (startegia CBV od lewej do prawej) rozszerzony o mozliwosc definiowania funkcji przez rekursje, wyrazenie if, operacje arytmetyczne, logiczne oraz listowe. W efekcie ostatecznym Twoj interpreter powinien byc w stanie zinterpretowac funkcje multlist z pierwszego wykladu.
Zadanie 3
Wykonujac defunkcjonalizacje funkcji i kontynuacji, przetransformuj interpreter z Zadania 2 do odpowiadajacej mu maszyny abstrakcyjnej. Przeprowadz testy porownujace wydajnosc obu ewaluatorow.