Metody realizacji języków programowania: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
(Nie pokazano 47 wersji utworzonych przez 5 użytkowników) | |||
Linia 1: | Linia 1: | ||
== | == Forma zajęć == | ||
Wykład (30 godzin) + laboratorium (30 godzin) | |||
== Opis == | == 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 | 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 == | == Sylabus == | ||
=== Autor === | |||
* Andrzej Salwicki | |||
=== Wymagania wstępne === | |||
* Programowanie obiektowe | * Programowanie obiektowe | ||
Linia 36: | Linia 19: | ||
* Języki, automaty i obliczenia | * Języki, automaty i obliczenia | ||
* Podstawy kompilatorów | |||
=== Zawartość === | |||
* Tablica symboli — dla języka typu Java tablica symboli to poważne wyzwanie. | |||
* 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 | ||
== Moduły == | |||
Poniższe materiały przygotowuje dla Ciebie zespól w składzie: Marcin Benke, Marek Biskup, Paweł Górecki, Marcin Kowalczyk, Andrzej Salwicki, Łukasz Sznuk, Marek Warpechowski, Artur Zaroda. | |||
# [[MRJP Wykład 1| Wstęp]] | # [[Metody realizacji języków programowania/MRJP Wykład 1| Wstęp]] | ||
# [[MRJP Wykład 2| Tablica symboli]] ([[MRJP Ćwiczenia 2|Ćwiczenia]]) | # [[Metody realizacji języków programowania/MRJP Wykład 2| Tablica symboli]] ([[Metody realizacji języków programowania/MRJP Ćwiczenia 2|Ćwiczenia]]) | ||
# [[MRJP Wykład 3| Statyczna analiza semantyczna ]] ([[MRJP Ćwiczenia 3|Ćwiczenia]]) | # [[Metody realizacji języków programowania/MRJP Wykład 3| Statyczna analiza semantyczna ]] ([[Metody realizacji języków programowania/MRJP Ćwiczenia 3|Ćwiczenia]]) | ||
# [[MRJP Wykład 4| Maszyna wirtualna I]] ([[MRJP Ćwiczenia 4|Ćwiczenia]]) | # [[Metody realizacji języków programowania/MRJP Wykład 4| Maszyna wirtualna I]] ([[Metody realizacji języków programowania/MRJP Ćwiczenia 4|Ćwiczenia]]) | ||
# [[MRJP Wykład 5| Maszyna wirtualna II ]] ([[MRJP Ćwiczenia 5|Ćwiczenia]]) | # [[Metody realizacji języków programowania/MRJP Wykład 5| Maszyna wirtualna II ]] ([[Metody realizacji języków programowania/MRJP Ćwiczenia 5|Ćwiczenia]]) | ||
# [[MRJP Wykład 6| Generowanie kodu pośredniego]] ([[MRJP Ćwiczenia 6|Ćwiczenia]]) | # [[Metody realizacji języków programowania/MRJP Wykład 6| Generowanie kodu pośredniego]] ([[Metody realizacji języków programowania/MRJP Ćwiczenia 6|Ćwiczenia]]) | ||
# [[MRJP Wykład 7| Sprowadzanie kodu do postaci SSA]] ([[MRJP Ćwiczenia 7|Ćwiczenia]]) | # [[Metody realizacji języków programowania/MRJP Wykład 7| Sprowadzanie kodu do postaci SSA]] ([[Metody realizacji języków programowania/MRJP Ćwiczenia 7|Ćwiczenia]]) | ||
# [[MRJP Wykład 8| Optymalizacja kodu pośredniego w postaci SSA]] ([[MRJP Ćwiczenia 8|Ćwiczenia]]) | # [[Metody realizacji języków programowania/MRJP Wykład 8| Optymalizacja kodu pośredniego w postaci SSA]] ([[Metody realizacji języków programowania/MRJP Ćwiczenia 8|Ćwiczenia]]) | ||
# [[MRJP Wykład 9| Zarządzanie pamięcią. Odśmiecanie ]] ([[MRJP Ćwiczenia 9|Ćwiczenia]]) | # [[Metody realizacji języków programowania/MRJP Wykład 9| Zarządzanie pamięcią. Odśmiecanie ]] ([[Metody realizacji języków programowania/MRJP Ćwiczenia 9|Ćwiczenia]]) | ||
# [[MRJP Wykład 10| Realizacja obsługi sygnałów/wyjątków]] | # [[Metody realizacji języków programowania/MRJP Wykład 10| Realizacja obsługi sygnałów/wyjątków]] | ||
# [[MRJP Wykład 11|Optymalizacja II]] ([[MRJP Ćwiczenia 11|Ćwiczenia]]) | # [[Metody realizacji języków programowania/MRJP Wykład 11|Optymalizacja II]] ([[Metody realizacji języków programowania/MRJP Ćwiczenia 11|Ćwiczenia]]) | ||
# [[MRJP Wykład 12| Kompilacja języków programowania funkcyjnego ]] ([[MRJP Ćwiczenia 12|Ćwiczenia]]) | # [[Metody realizacji języków programowania/MRJP Wykład 12| Kompilacja języków programowania funkcyjnego ]] ([[Metody realizacji języków programowania/MRJP Ćwiczenia 12|Ćwiczenia]]) | ||
# [[MRJP Wykład 13| Realizacja obiektów aktywnych (wątków, procesów) w jezyku z procesami współbieżnymi i rozproszonymi]] ([[MRJP Ćwiczenia 13|Ćwiczenia]]) | # [[Metody realizacji języków programowania/MRJP Wykład 13| Realizacja obiektów aktywnych (wątków, procesów) w jezyku z procesami współbieżnymi i rozproszonymi]] ([[Metody realizacji języków programowania/MRJP Ćwiczenia 13|Ćwiczenia]]) | ||
# [[Metody realizacji języków programowania/MRJP Laboratorium| Laboratorium]] | |||
* [[MRJP Przykładowy zestaw zadań egzaminacyjnych]] | * [[ Metody realizacji języków programowania/MRJP Przykładowy zestaw zadań egzaminacyjnych]] |
Aktualna wersja na dzień 08:27, 20 paź 2006
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ść
- Tablica symboli — dla języka typu Java tablica symboli to poważne wyzwanie.
- 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
Moduły
Poniższe materiały przygotowuje dla Ciebie zespól w składzie: Marcin Benke, Marek Biskup, Paweł Górecki, Marcin Kowalczyk, Andrzej Salwicki, Łukasz Sznuk, Marek Warpechowski, Artur Zaroda.
- Wstęp
- 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
- 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)
- Laboratorium