Metody realizacji języków programowania: Różnice pomiędzy wersjami
Linia 51: | Linia 51: | ||
# [[MRJP Wykład 4| Maszyna wirtualna I]] ([[MRJP Ćwiczenia 4|Ćwiczenia]]) | # [[MRJP Wykład 4| Maszyna wirtualna I]] ([[MRJP Ćwiczenia 4|Ćwiczenia]]) | ||
# [[MRJP Wykład 5| Maszyna wirtualna II ]] ([[MRJP Ćwiczenia 5|Ćwiczenia]]) | # [[MRJP Wykład 5| Maszyna wirtualna II ]] ([[MRJP Ćwiczenia 5|Ćwiczenia]]) | ||
# [[MRJP Wykład 6| Generowanie kodu pośredniego]] ([[MRJP Ćwiczenia 6|Ćwiczenia]]) | # [[Metody realizacji języków programowania/MRJP Wykład 6| Generowanie kodu pośredniego]] ([[MRJP Ćwiczenia 6|Ćwiczenia]]) | ||
# [[MRJP Wykład 7| Sprowadzanie kodu do postaci SSA]] ([[MRJP Ćwiczenia 7|Ćwiczenia]]) | # [[MRJP Wykład 7| Sprowadzanie kodu do postaci SSA]] ([[MRJP Ćwiczenia 7|Ćwiczenia]]) | ||
# [[MRJP Wykład 8| Optymalizacja kodu pośredniego w postaci SSA]] ([[MRJP Ćwiczenia 8|Ćwiczenia]]) | # [[MRJP Wykład 8| Optymalizacja kodu pośredniego w postaci SSA]] ([[MRJP Ćwiczenia 8|Ćwiczenia]]) |
Wersja z 20:42, 15 lip 2006
Forma zajęć
Wykład (30 godzin) + laboratorium (30 godzin)
Opis
Celem tych zajęć jest przedstawienie najważniejszych algorytmów i struktur danych służących kompilacji i wykonywaniu skompilowanych programów. Omówione zostaną: maszyna wirtualna czyli środowisko wykonywania programów, tablica symboli, algorytmy syntezy kodu wynikowego oraz niektóre zaawansowane zagadnienia kompilacji.
Sylabus
Autor
- Andrzej Salwicki
Wymagania wstępne
- Programowanie obiektowe
- Języki, automaty i obliczenia
- Podstawy kompilatorów
Zawartość
Tablica symboli - dla języka typu Java tablica symboli to poważne wyzwanie. Statyczna analiza semantyczna. Maszyna wirtualna. Generowanie kodu pośredniego. Sprowadzanie go do postaci SSA. Optymalizacja kodu posredniego. Zarządzanie pamiecią . Odśmiecanie. Realizacja obsługi wyjątków/ sygnałów. Kompilacja języków programowania funkcyjnego. Realizacja obiektów aktywnych (wątków, procesów) w języku z procesami współbieżnymi i rozproszonymi.
Literatura
- A. Aho, R. Sethi, J. Ullman. Kompilatory. WNT, 2001.
- W. Waite, G. Goos, Konstrukcja kompilatorów, WNT, 1989
- D. Gries Konstrukcja translatorów dla maszyn cyfrowych ,WNT, 1984
- Internet - jak widać literatura w języku polskim nie jest zbyt obszerna. Zachęcamy do szukania informacji w internecie. Zacznij od zadawania pytań wikipedii i google. Np. do wyszukiwarki Google (tj. http://google.com) wpisz "SSA form" lub tylko "SSA".
Moduły
- Wstęp (Ćwiczenia)
- Tablica symboli (Ćwiczenia)
- Statyczna analiza semantyczna (Ćwiczenia)
- Maszyna wirtualna I (Ćwiczenia)
- Maszyna wirtualna II (Ćwiczenia)
- Generowanie kodu pośredniego (Ćwiczenia)
- Sprowadzanie kodu do postaci SSA (Ćwiczenia)
- Optymalizacja kodu pośredniego w postaci SSA (Ćwiczenia)
- Zarządzanie pamięcią. Odśmiecanie (Ćwiczenia)
- Realizacja obsługi sygnałów/wyjątków (Ćwiczenia)
- Optymalizacja II (Ćwiczenia)
- Kompilacja języków programowania funkcyjnego (Ćwiczenia)
- Realizacja obiektów aktywnych (wątków, procesów) w jezyku z procesami współbieżnymi i rozproszonymi (Ćwiczenia)