Metody realizacji języków programowania: Różnice pomiędzy wersjami
Nie podano opisu zmian |
|||
Linia 52: | Linia 52: | ||
== MRJP wprowadza definicje == | == MRJP wprowadza definicje == | ||
analiza kodu źródłowego | # analiza kodu źródłowego | ||
analiza leksykalna | # analiza leksykalna | ||
analiza składniowa | # analiza składniowa | ||
analiza poprawności typów (statyczna analiza semantyczna) | # analiza poprawności typów (statyczna analiza semantyczna) | ||
synteza | # synteza | ||
generowanie kodu pośredniego | # generowanie kodu pośredniego | ||
optymalizacja kodu | # optymalizacja kodu | ||
generowanie kodu wynikowego | # generowanie kodu wynikowego | ||
środowisko czasu wykonania (maszyna wirtualna) | # środowisko czasu wykonania (maszyna wirtualna) | ||
zarządzanie pamięcią | # zarządzanie pamięcią | ||
odśmiecanie | # odśmiecanie | ||
== Moduły == | == Moduły == |
Wersja z 04:47, 9 cze 2006
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)