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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Salwicki (dyskusja | edycje)
Nie podano opisu zmian
Salwicki (dyskusja | edycje)
Linia 52: Linia 52:
== MRJP wprowadza definicje ==
== MRJP wprowadza definicje ==


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


== Moduły ==
== Moduły ==

Wersja z 04:47, 9 cze 2006

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

  1. analiza kodu źródłowego
  2. analiza leksykalna
  3. analiza składniowa
  4. analiza poprawności typów (statyczna analiza semantyczna)
  5. synteza
  6. generowanie kodu pośredniego
  7. optymalizacja kodu
  8. generowanie kodu wynikowego
  9. środowisko czasu wykonania (maszyna wirtualna)
  10. zarządzanie pamięcią
  11. odśmiecanie

Moduły

  1. Kompilator z lotu ptaka. Analiza leksykalna (Ćwiczenia)
  2. Analiza składniowa zstępująca (Ćwiczenia)
  3. Analiza składniowa wstępująca I (Ćwiczenia)
  4. Analiza składniowa wstępująca II (Ćwiczenia)
  5. Tablica Symboli (Ćwiczenia)
  6. Statyczna analiza semantyczna (Ćwiczenia)
  7. Maszyna wirtualna (Ćwiczenia)
  8. Generowanie kodu pośredniego (Ćwiczenia)
  9. Temat (Ćwiczenia)
  10. Temat (Ćwiczenia)
  11. Temat (Ćwiczenia)
  12. Temat (Ćwiczenia)
  13. Temat (Ćwiczenia)
  14. Temat (Ćwiczenia)
  15. Temat (Ćwiczenia)