| 0 | Odbywanie zajęć: dni i godziny.
Info o przedmiocie:
źródła wiedzy, wymagania wstępne, zasady zaliczania, itp.
Rzut oka na kompilator:
co to jest i z czego się składa. |
| |
| 1 | Języki formalne:
alfabet, słowo, język, sposoby ich opisu.
Gramatyka bezkontekstowa:
definicja, generowanie języka przez gramatykę, przykłady. |
| |
| 2 | Języki regularne:
gramatyki prawostronnie liniowe,
języki regularne i bezkontekstowe.
Uproszczona hierarchia Chomsky'ego oraz
nieformalne kryteria bezkontekstowości i regularności
języka.
Wyrażenia regularne:
definiowanie języka przez wyrażenie regularne,
informacja o zastosowaniu wyrażeń regularnych do wyszukiwania i
zastępowania.
|
| |
| 3 | Języki bezkontekstowe:
notacja Backusa-Naura, drzewa wywodu.
Gramatyki niejednoznaczne. Drzewo wywodu a struktura
słowa.
Pierwszeństwo operatorów.
|
| |
| 4 | Akceptory:
automat skończony.
maszyna stosowa.
Związki między gramatykami, językami, maszynami.
|
| |
| 5 | Notacja beznawiasowa Łukasiewicza.
Przechodzenie drzew:
infix, prefix, postfix
obliczenia na stosie.
Działania na językach,
równania językowe, przekształcenia gramatyk.
Rekursja lewostronna. |
| |
| 6 |
Schemat kompilatora.
Analiza leksykalna:
Proszę zapoznać się z programem w C realizującym
analizę leksykalną języka z wykładu.
|
| |
| 7 |
Metody analizy syntaktycznej.
Rekursywny parser zstępujący:
pisanie parsera wg gramatyki,
leczenie problemów.
Proszę zapoznać się z trzema programami realizującymi
parsing zstępujący omawianymi na wykładzie: dla gramatyki bez rekursji, dla gramatyki
z rekursją nielewostronną
oraz dla gramatyki z rekursją
lewostronną.
|
| |
| 8 |
Rozbiór wstępujący:
gramatyki z pierwszeństwem;
konstrukcja tablic pierwszeństwa;
poprawianie gramatyki na gramatykę z
pierwszeństwem;
użycie tablicy pierwszeństwa;
wykonanie redukcji.
Zalety i wady gramatyk z pierwszeństwem.
Proszę zapoznać się z programem
realizującym wstępujący parsing z pierwszeństwem dla języka z
wykładu.
|
| |
| 9 | | |
| 10 | | |
| 11 |
Program w języku wewnętrzym w realnym
komputerze.
Organizacja pamięci dla danych (prostych, tablicowych,
itp.).
Organizacja pamięci dla funkcji (parametry, zm. lokalne, rekursja).
|
| |
| 12 |
Dwuetapowe generowanie kodu wewnętrznego:
przy tłumaczeniu wyrażeń,
przy tłumaczeniu instrukcji.
|
| |
| 13 |
Gramatyki atrybutowe.
Rzut oka na automatyczne generowanie translatorów:
BISON.
Proszę zapoznać się z przykładowymi danymi dla BISONa —
generatora translatorów:
aabbcc.y —
sprawdzanie długości trzech części słowa
typy.y —
sprawdzanie typu komendy przypisania
pjo.y — prosty
język dla obliczeń
Interpretacja a kompilacja.
Proszę zapoznać się z działaniem prościutkiego
kompilatora w Bisonie.
|
| |
| 14 |
Rzut oka na automatyczne generowanie skanerów:
FLEX.
Współpraca Flexa z Bisonem.
Proszę zapoznać się z przykładowymi danymi dla FLEXa —
generatora analizatorow leksykalnych:
FlexSam
FlexBison
|
| |
Zadania z laboratoriów
Uwaga:
Czasem na początku laboratoriów będą mieć
miejsce niezapowiedziane krótkie sprawdziany wiedzy i
umiejętności, oraz znajomości wykładów. Stanowią one najłatwiejszą
formę zaliczenia — rozbójnik na koniec semestru jest trudniejszy.
Proszę więc przygotowywać się na bieżąco, nie spóźniać się na
zajęcia i być aktywnym.
Z podanych poniżej zadań niektóre rozwiązujemy razem na zajęciach.
Zakładam, że tym niezrobionym stawiają Państwo czoła samodzielnie, w
domu. Jeżeli to się z jakiś powodów nie udaje, to ten fakt należy
koniecznie zgłosić na początku następnego laboratorium —
zrobimy je wspólnie. Kto nie zgłosi trudności, o tym zakładam, że
zadania rozwiązał i w przyszłości będzie umiał rozwiązać następne
podobne.
Niektóre zadania oznaczone są jako
- ,,domowe na punkty'' — z ograniczonym czasem przysyłania,
lub
- ,,domowe specjalne'' — na większe punkty, ważne do końca
semestru, ale tylko dla pierwszej osoby, która przyśle poprawne
rozwiązanie.
Laboratoria już odbyte:
| 0 | treść zadań Rozgrzewka: prosta analiza tekstu programem. |
|
| 1 | |
| 2 | treść zadań Gramatyki prawoliniowe; wyrażenia i języki regularne. |
|
| 3 | treść zadań Notacja Backusa-Naura; drzewa wywodu; pierwszeństwa operatorów. |
|
| 4 | treść zadań Automaty skończone i generowane przez nie języki. |
|
| 5 | treść zadań Maszyny stosowe; notacja prefiksowa i postfiksowa wyrażeń. |
|
| 6 | treść zadań Działania na językach; analiza leksykalna.
Proszę zapoznać się
z programem dokonującym
analizy leksykalnej dla gramatyki z wykładu 6. |
|
| 7 | treść zadań Parsing rekursywny zstępujący, na razie bez budowania drzew. |
|
| 8 | treść zadań
Parsing rekursywny zstępujący z budowaniem drzew.
Proszę zapoznać się
z programem dokonującym
parsingu dla gramatyki wyrażeń wg zasad omówionych w
wykładzie 7.
Parsing z pierwszeństwem. |
|
| 9 | treść zadań
Parsing z pierwszeństwem, c.d.
Programy w języku ,,wewnętrznym''.
|
|
| 10 | |
| 11 | |
| 12 | treść zadań
Realizacja maszyny stosowej w jęz. wewnętrznym..
|
|
| 13 | treść zadań
Automatyczna interpretacja i kompilacja: BISON i FLEX.
|
|
| 14 |
BISON i FLEX, c.d. |