Metody realizacji języków programowania
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, sposoby analizy składniowej: parsery LL(1) i LR(1), algorytmy syntezy kodu wynikowego.
Sylabus
Autor sylabusa
prof. dr hab. Andrzej Salwicki
salwicki@mimuw.edu.pl
Nazwa zajęć:
Metody Realizacji Języków Programowania
Typ zajęć:
wykład (30 godz.) + ćwiczenia (30 godz.)
Opis:
Celem wykładu 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, sposoby analizy składniowej: parsery LL(1) i LR(1), algorytmy syntezy kodu wynikowego.
Wymagania wstępne:
Programowanie obiektowe Języki, automaty i obliczenia
Sylabus:
Kompilator i maszyna wirtualna z lotu ptaka Analiza leksykalna. Analiza składniowa zstępująca i wstępująca Tablica symboli. Statyczna analiza semantyczna Środowisko czasu wykonania: rekordy aktywacji i obiekty. Kompilacja sterowana składnią. Reguły semantyczne. Kod pośredni. Postać SSA kodu pośredniego Optymalizacja kodu Zarządzanie pamięcią – tworzenie jednostek dynamicznych i odśmiecanie Obsługa systuacji wyjątkowych i zarządzanie wątkami w procesach współbieżnych i rozproszonych
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
MRJP wprowadza definicje
- analiza kodu źródłowego
- analiza leksykalna
- analiza składniowa
- analiza poprawności typów (statyczna analiza semantyczna)
- synteza
- generowanie kodu pośredniego
- optymalizacja kodu
- generowanie kodu wynikowego
- środowisko czasu wykonania (maszyna wirtualna)
- zarządzanie pamięcią
- odśmiecanie
Moduły
- Kompilator z lotu ptaka. Analiza leksykalna (Ćwiczenia)
- Analiza składniowa zstępująca (Ćwiczenia)
- Analiza składniowa wstępująca I (Ćwiczenia)
- Analiza składniowa wstępująca II (Ćwiczenia)
- Tablica Symboli (Ćwiczenia)
- Statyczna analiza semantyczna (Ćwiczenia)
- Maszyna wirtualna (Ćwiczenia)
- Generowanie kodu pośredniego (Ćwiczenia)
- Temat (Ćwiczenia)
- Temat (Ćwiczenia)
- Temat (Ćwiczenia)
- Temat (Ćwiczenia)
- Temat (Ćwiczenia)
- Temat (Ćwiczenia)
- Temat (Ćwiczenia)