Metody realizacji języków programowania

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

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

  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)