Metody realizacji języków programowania: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Salwicki (dyskusja | edycje)
Salwicki (dyskusja | edycje)
Linia 82: Linia 82:
== Moduły ==
== Moduły ==


# [[MRJP Wykład 1|Kompilator z lotu ptaka. Analiza leksykalna]] ([[MRJP Ćwiczenia 1|Ćwiczenia]])
# [[MRJP Wykład 1| Wstęp]] ([[MRJP Ćwiczenia 1|Ćwiczenia]])
# [[MRJP Wykład 2|Analiza składniowa zstępująca]] ([[MRJP Ćwiczenia 2|Ćwiczenia]])
# [[MRJP Wykład 2| Tablica symboli]] ([[MRJP Ćwiczenia 2|Ćwiczenia]])
# [[MRJP Wykład 3|Analiza składniowa wstępująca I]] ([[MRJP Ćwiczenia 3|Ćwiczenia]])
# [[MRJP Wykład 3| Statyczna analiza semantyczna ]] ([[MRJP Ćwiczenia 3|Ćwiczenia]])
# [[MRJP Wykład 4|Analiza składniowa wstępująca II]] ([[MRJP Ćwiczenia 4|Ćwiczenia]])
# [[MRJP Wykład 4| Maszyna wirtualna I]] ([[MRJP Ćwiczenia 4|Ćwiczenia]])
# [[MRJP Wykład 5|Tablica Symboli]] ([[MRJP Ćwiczenia 5|Ćwiczenia]])
# [[MRJP Wykład 5| Maszyna wirtualna II ]] ([[MRJP Ćwiczenia 5|Ćwiczenia]])
# [[MRJP Wykład 6|Statyczna analiza semantyczna]] ([[MRJP Ćwiczenia 6|Ćwiczenia]])
# [[MRJP Wykład 6| Generowanie kodu pośredniego]] ([[MRJP Ćwiczenia 6|Ćwiczenia]])
# [[MRJP Wykład 7|Maszyna wirtualna]] ([[MRJP Ćwiczenia 7|Ćwiczenia]])
# [[MRJP Wykład 7| Sprowadzanie kodu do postaci SSA]] ([[MRJP Ćwiczenia 7|Ćwiczenia]])
# [[MRJP Wykład 8|Generowanie kodu pośredniego]] ([[MRJP Ćwiczenia 8|Ćwiczenia]])
# [[MRJP Wykład 8| Optymalizacja kodu pośredniego w postaci SSA]] ([[MRJP Ćwiczenia 8|Ćwiczenia]])
# [[MRJP Wykład 9|Temat]] ([[MRJP Ćwiczenia 9|Ćwiczenia]])
# [[MRJP Wykład 9| Zarządzanie pamięcią. Odśmiecanie ]] ([[MRJP Ćwiczenia 9|Ćwiczenia]])
# [[MRJP Wykład 10|Temat]] ([[MRJP Ćwiczenia 10|Ćwiczenia]])
# [[MRJP Wykład 10| Realizacja obsługi sygnałów/wyjątków]] ([[MRJP Ćwiczenia 10|Ćwiczenia]])
# [[MRJP Wykład 11|Temat]] ([[MRJP Ćwiczenia 11|Ćwiczenia]])
# [[MRJP Wykład 11|Optymalizacja II]] ([[MRJP Ćwiczenia 11|Ćwiczenia]])
# [[MRJP Wykład 12|Sprowadzanie kodu do postaci SSA]] ([[MRJP Ćwiczenia 12|Ćwiczenia]])
# [[MRJP Wykład 12| Kompilacja języków programowania funkcyjnego ]] ([[MRJP Ćwiczenia 12|Ćwiczenia]])
# [[MRJP Wykład 13|Optymalizacja kodu pośredniego w postaci SSA]] ([[MRJP Ćwiczenia 13|Ć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]])
# [[MRJP Wykład 14|Realizacja obsługi sygnałów/wyjątków]] ([[MRJP Ćwiczenia 13|Ćwiczenia]])
# [[MRJP Wykład 14| ''Nie istnieje'']] ([[MRJP Ćwiczenia 13|Ćwiczenia]])
# [[MRJP Wykład 15|Realizacja obiektów aktywnych (wątków, procesów) w jezyku z procesami współbieżnymi i rozproszonymi]] ([[MRJP Ćwiczenia 13|Ćwiczenia]])
# [[MRJP Wykład 15| ''Nie istnieje'']] ([[MRJP Ćwiczenia 13|Ćwiczenia]])




* [[MRJP Przykładowy zestaw zadań egzaminacyjnych]]
* [[MRJP Przykładowy zestaw zadań egzaminacyjnych]]

Wersja z 12:06, 30 cze 2006

Inwokacja

Wszystkich którzy trafią na poniższą stronę proszę o nadsyłanie uwag, protestów, sugestii etc. Dziękuję.

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

  1. Wstęp (Ćwiczenia)
  2. Tablica symboli (Ćwiczenia)
  3. Statyczna analiza semantyczna (Ćwiczenia)
  4. Maszyna wirtualna I (Ćwiczenia)
  5. Maszyna wirtualna II (Ćwiczenia)
  6. Generowanie kodu pośredniego (Ćwiczenia)
  7. Sprowadzanie kodu do postaci SSA (Ćwiczenia)
  8. Optymalizacja kodu pośredniego w postaci SSA (Ćwiczenia)
  9. Zarządzanie pamięcią. Odśmiecanie (Ćwiczenia)
  10. Realizacja obsługi sygnałów/wyjątków (Ćwiczenia)
  11. Optymalizacja II (Ćwiczenia)
  12. Kompilacja języków programowania funkcyjnego (Ćwiczenia)
  13. Realizacja obiektów aktywnych (wątków, procesów) w jezyku z procesami współbieżnymi i rozproszonymi (Ćwiczenia)
  14. Nie istnieje (Ćwiczenia)
  15. Nie istnieje (Ćwiczenia)