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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
m Przywrócono przedostatnią wersję, jej autor to Salwicki
Linia 1: Linia 1:
== Forma zajęć ==
== Inwokacja ==
Wszystkich którzy trafią na poniższą stronę proszę o nadsyłanie uwag, protestów, sugestii etc. Dziękuję.


Wykład (30 godzin) + ćwiczenia (30 godzin)
Jak łatwo widać zderzyły się programy zajęć Podstawy kompilatorów i Metody Realizacji Języków Programowania.
 
Na prośbę prof. Diksa opracowujemy nowy sylabus. Prosimy o uwagi i sugestie.


== Opis ==
== 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.  
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 ==
== Sylabus ==


=== Autor ===
'''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.)


* Andrzej Salwicki
'''Opis''':
 
=== Wymagania wstępne ===
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.
 
'''Wymagania wstępne''':


* Programowanie obiektowe
* Programowanie obiektowe
* Języki, automaty i obliczenia
* Języki, automaty i obliczenia


=== Zawartość ===
'''Sylabus''':


*Analiza kodu źródłowego
TODO
*Analiza leksykalna
Zob. lista tematów wykładów
*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 ===
'''Literatura''':


* A. Aho, R. Sethi, J. Ullman. Kompilatory. WNT, 2001.
* A. Aho, R. Sethi, J. Ullman. Kompilatory. WNT, 2001.
* W. Waite, G. Goos, Konstrukcja kompilatorów, WNT, 1989
* W. Waite, G. Goos, Konstrukcja kompilatorów, WNT, 1989
* D. Gries Konstrukcja translatorów dla maszyn cyfrowych ,WNT, 1984
 
* 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 ==
== Moduły ==
Linia 53: Linia 92:
# [[MRJP Wykład 12| Kompilacja języków programowania funkcyjnego ]] ([[MRJP Ćwiczenia 12|Ćwiczenia]])
# [[MRJP Wykład 12| Kompilacja języków programowania funkcyjnego ]] ([[MRJP Ćwiczenia 12|Ć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 13| Realizacja obiektów aktywnych (wątków, procesów) w jezyku z procesami współbieżnymi i rozproszonymi]] ([[MRJP Ćwiczenia 13|Ćwiczenia]])
* [[MRJP Przykładowy zestaw zadań egzaminacyjnych]]

Wersja z 07:45, 14 lip 2006

Inwokacja

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

Jak łatwo widać zderzyły się programy zajęć Podstawy kompilatorów i Metody Realizacji Języków Programowania.

Na prośbę prof. Diksa opracowujemy nowy sylabus. Prosimy o uwagi i sugestie.

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, 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.

Wymagania wstępne:

  • Programowanie obiektowe
  • Języki, automaty i obliczenia

Sylabus:

TODO Zob. lista tematów wykładów

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)