Metody realizacji języków programowania: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== | == 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. | 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. | ||
Linia 66: | Linia 66: | ||
== Moduły == | == Moduły == | ||
# [[MRJP Wykład 1|Kompilator z lotu ptaka. Analiza leksykalna]] ([[MRJP Ćwiczenia 1|Ćwiczenia]]) | |||
# [[MRJP Wykład 2|Analiza składniowa zstępująca]] ([[MRJP Ćwiczenia 2|Ćwiczenia]]) | |||
# [[MRJP Wykład 3|Analiza składniowa wstępująca I]] ([[MRJP Ćwiczenia 3|Ćwiczenia]]) | |||
# [[MRJP Wykład 4|Analiza składniowa wstępująca II]] ([[MRJP Ćwiczenia 4|Ćwiczenia]]) | |||
# [[MRJP Wykład 5|Tablica Symboli]] ([[MRJP Ćwiczenia 5|Ćwiczenia]]) | |||
# [[MRJP Wykład 6|Statyczna analiza semantyczna]] ([[MRJP Ćwiczenia 6|Ćwiczenia]]) | |||
# [[MRJP Wykład 7|Maszyna wirtualna]] ([[MRJP Ćwiczenia 7|Ćwiczenia]]) | |||
# [[MRJP Wykład 8|Generowanie kodu pośredniego]] ([[MRJP Ćwiczenia 8|Ćwiczenia]]) | |||
# [[MRJP Wykład 9|Temat]] ([[MRJP Ćwiczenia 9|Ćwiczenia]]) | |||
# [[MRJP Wykład 10|Temat]] ([[MRJP Ćwiczenia 10|Ćwiczenia]]) | |||
# [[MRJP Wykład 11|Temat]] ([[MRJP Ćwiczenia 11|Ćwiczenia]]) | |||
# [[MRJP Wykład 12|Temat]] ([[MRJP Ćwiczenia 12|Ćwiczenia]]) | |||
# [[MN Wykład 13|Temat]] ([[MN Ćwiczenia 13|Ćwiczenia]]) | |||
# [[MN Wykład 14|Temat]] ([[MN Ćwiczenia 13|Ćwiczenia]]) | |||
# [[MN Wykład 15|Temat]] ([[MN Ćwiczenia 13|Ćwiczenia]]) |
Wersja z 04:38, 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)