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 kodu źródłowego
*analiza leksykalna
*Analiza leksykalna
*analiza składniowa
*Analiza składniowa
*analiza poprawności typów (statyczna analiza semantyczna)
*Analiza poprawności typów (statyczna analiza semantyczna)
*synteza
*Synteza
*generowanie kodu pośredniego
*Generowanie kodu pośredniego
*optymalizacja kodu
*Optymalizacja kodu
*generowanie kodu wynikowego
*Generowanie kodu wynikowego
*środowisko czasu wykonania (maszyna wirtualna)
*Środowisko czasu wykonania (maszyna wirtualna)
*zarządzanie pamięcią
*Zarządzanie pamięcią
*odśmiecanie
*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

  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)