Zapoznać się z programami przykładowymi parse1.p i parse2.p. Napisać procedurę która z drzewa produkowanego przez parse1.p wyprodukuje z powrotem program, wykonujący te same obliczenia jak oryginaly program, ale być może wyglądający inczej. Procedura ta powinna się starać wypisać ładny wynik: każde podstawienie w oddzielnej linii, instrukcje wewnątrz pętli i w gałęziach instrukcji if z wcięciami.
Uprościć program parse2.p, tak by obsługiwał tylko wyrażenia arytmetyczne. Następnie dodać obsługę funkcji logarytmicznej i wykładniczej. Wynik z otrzymanego analizatora przekazać do procedury różniczkującej z zadania 4 z listy 7.
Napisać procedurę która upraszcza (częściowo "spłaszcza") drzewa. Dokładniej, jeśli dany wezeł drzewa jest reprezentowany przez listę jednoelementową ma być on zastąpiony przez jedyny element tej listy.
Napisać procedurę "upraszczającą" wyrażenia arytmetyczne (reprezentowane przez drzewa). Procedura ta powinna pomijać dodawanie 0 i mnożenie przez 1 oraz wykonać działania których argumentami są liczby.