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 36: Linia 36:
Realizacja obiektów aktywnych (wątków, procesów) w języku z procesami współbieżnymi i rozproszonymi.
Realizacja obiektów aktywnych (wątków, procesów) w języku z procesami współbieżnymi i rozproszonymi.


=== Literatura ===:
=== Literatura ===


* A. Aho, R. Sethi, J. Ullman. Kompilatory. WNT, 2001.
* A. Aho, R. Sethi, J. Ullman. Kompilatory. WNT, 2001.

Wersja z 19:32, 15 lip 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 sylabusa

  • 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 posredniego. Zarządzanie pamiecią . 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. WNT, 2001.
  • W. Waite, G. Goos, Konstrukcja kompilatorów, WNT, 1989
  • D. Gries Konstrukcja translatorów dla maszyn cyfrowych ,WNT, 1984
  • Internet - jak widać literatura w języku polskim nie jest zbyt obszerna. Zachęcamy do szukania informacji w internecie. Zacznij od zadawania pytań wikipedii i google. Np. do wyszukiwarki Google (tj. http://google.com) wpisz "SSA form" lub tylko "SSA".

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)