MIMINF:Metody realizacji języków programowania
Z Studia Informatyczne
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ść
- Budowa kompilatora
- Fazy kompilacji: analiza leksykalna, składniowa, konktekstowa, generowanie kodu, optymalizacja, składanie kodu.
- Struktury danych kompilatora (tablica nazw, tablica symboli).
- Statyczna analiza semantyczna.
- Maszyna wirtualna.
- Generowanie kodu pośredniego. Sprowadzanie go do postaci SSA.
- Optymalizacja kodu pośredniego.
- Zarządzanie pamięcią . 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, Wydawnictwa Naukowo-Techniczne, Warszawa 2001.
- W. Waite, G. Goos, Konstrukcja kompilatorów, Wydawnictwa Naukowo-Techniczne, Warszawa 1989
- D. Gries, Konstrukcja translatorów dla maszyn cyfrowych, Wydawnictwa Naukowo-Techniczne, Warszawa 1984