JĘZYKI FORMALNE I METODY KOMPILACJI
W poniższej tabelce kliknięcie
Bardzo proszę o zgłaszanie mi
| 0 |
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. |
przegląd slajdy |
|---|---|---|
| 1 |
Języki formalne: alfabet, słowo, język, sposoby ich opisu. Gramatyka bezkontekstowa: definicja, generowanie języka przez gramatykę, przykłady. |
przegląd slajdy |
| 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. |
przegląd slajdy |
| 3 |
Języki bezkontekstowe: notacja Backusa-Naura, drzewa wywodu. Gramatyki niejednoznaczne. Drzewo wywodu a struktura słowa. Pierwszeństwo operatorów. |
przegląd slajdy |
| 4 |
Akceptory: automat skończony. maszyna stosowa. Związki między gramatykami, językami, maszynami. |
przegląd slajdy |
| 5 |
Notacja beznawiasowa Łukasiewicza, Przechodzenie drzew: infix, prefix, postfix obliczenia na stosie. Działania na językach, równania językowe, przekształcenia gramatyk. |
przegląd slajdy |
| 6 |
Schemat kompilatora. Analiza leksykalna: Proszę zapoznać się z programem w C (lub z programem w Javie) realizującym analizę leksykalną języka z wykładu. |
przegląd slajdy |
| 7 |
Metody analizy syntaktycznej. Rekursywny parser zstępujący: pisanie parsera wg gramatyki, leczenie problemów. Proszę zapoznać się z programem realizującym zstępujący parsing rekursywny dla języka z wykładu. |
przegląd slajdy |
| 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. |
przegląd slajdy |
| 9 |
Programowanie niskiego poziomu (język
,,wewnętrzny''). Proszę zapoznać się z programem symulujacym działanie języka wewnętrznego oraz z przykładowymi programami: dwumianem kwadratowym silnią wielomianem dowolnym potęgą Wskazówki dotyczące uruchamiania programów w C na unixlabie znajdują się tutaj. |
przegląd slajdy |
| 10 |
Duży program (z funkcją) w języku
,,wewnętrznym''. Podprogramy/funkcje. Proszę zapoznać się z przykładowymi programami w języku wewnętrznym: na dzielenie z resztą na potegę binarną. |
przegląd slajdy |
| 11 |
Organizacja pamięci. |
przegląd slajdy |
| 12 |
Dwuetapowe generowanie kodu wewnętrznego: przy tłumaczeniu wyrażeń, przy tłumaczeniu instrukcji. |
przegląd slajdy |
| 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ń |
przegląd slajdy |
| 14 |
Gramatyki atrybutowe. Działanie BISONa, c.d. Proszę zapoznać się z przykładowym BISON-owym kompilatorem prostego języczka: kompil.y — prosty kompilator Rzut oka na automatyczne generowanie skanerów: FLEX. Proszę zapoznać się z przykładowymi danymi dla FLEXa — generatora analizatorow leksykalnych: FlexSam FlexBison |
przegląd slajdy |
|---|
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
| 0 |
treść zadań Rozgrzewka: prosta analiza tekstu programem |
|---|---|
| 1 |
treść zadań Proszę zapoznać się z programem realizującym wywody słów w zadanej gramatyce. |
| 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 |
treść zadań
Programy w języku ,,wewnętrznym'' c.d. |
| 11 |
treść zadań
Organizacja pamięci. |
| 12 |
treść zadań
Maszyny stosowe. |
| 13 |
treść zadań
Automatyczna interpretacja i kompilacja: BISON i FLEX |
|---|
Do głównej witrynki
przedmiotu
Do mojej głównej
witrynki
Ostatnia modyfikacja: 18 stycznia 2025