Metody realizacji języków programowania: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
m Poprawki edytorskie |
|||
Linia 20: | Linia 20: | ||
=== Zawartość === | === Zawartość === | ||
* | *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 | ||
=== Literatura === | === Literatura === |
Wersja z 12:05, 7 lip 2006
Forma zajęć
Wykład (30 godzin) + ćwiczenia (30 godzin)
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, algorytmy syntezy kodu wynikowego i jego optymalizacji. Przedstawione też zostaną wybrane zaawansowane zagadnienia kompilacji: kompilacja języków funkcyjnych, kompilacja języków z wątkami współbieżnymi i procesami rozproszonymi, obsługa sygnałów sytuacji wyjątkowych.
Sylabus
Autor
- Andrzej Salwicki
Wymagania wstępne
- Programowanie obiektowe
- Języki, automaty i obliczenia
Zawartość
- 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
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
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)