Konstrukcja kompilatorów
Informacje ogólne
Kod przedmiotu: | 1100-KK0ZUI |
Kod Erasmus / ISCED: | (brak danych) / (brak danych) |
Nazwa przedmiotu: | Konstrukcja kompilatorów |
Jednostka: | Wydział Matematyki i Informatyki |
Grupy: |
Przedmioty ZUI2 - sm. letni |
Punkty ECTS i inne: |
0 LUB
4.00
LUB
6.00
LUB
8.00
LUB
7.00
LUB
5.00
(w zależności od programu)
|
Język prowadzenia: | polski |
Forma zaliczenia: | egzamin |
Forma studiów: | niestacjonarne (zaoczne) |
Wymagania wstępne: | Student powinien posiadać wiedzę dotyczącą teorii automatów skończonych, języków formalnych. Ponadto powinien posiadać umiejętność konstruowania algorytmów iteracyjnych i rekurencyjnych. Bardzo ważna będzie również znajomość programowania w językach wysokiego poziomu C, C++. |
Skrócony opis: |
Cele przedmiotu: Celem przedmiotu jest zaznajomienie studenta z procesem kompilacji jak i technikami i narzędziami wykorzystywanymi współcześnie do budowy kompilatorów. Przedstawione są etapy kompilacji wraz z ich szczegółowym opisem. Główny nacisk położony jest na analizę leksykalną i składniową. Omówione są zasady implementacji kompilatorów, z wykorzystaniem specjalizowanych narzędzi do tworzenia analizatorów składniowych jak i leksykalnych takich jak LEX, YACC i LLGEN, a także sposoby implementacji automatów skończonych. Ponadto omawiana jest implementacja w języku programowania wysokiego poziomu jakim jest język C++ skończonych automatów deterministycznych i niedeterministycznych stanowiących podstawę analizy leksykalnej. Sposób zaliczenia: Wykład kończy się egzaminem ustnym, laboratorium projektem zaliczeniowym. |
Efekty uczenia się: |
E.K. 1. Student implementuje deterministyczne i niedeterministyczne automaty skończone z wykorzystaniem języka C++; E.K. 2. Student identyfikuje techniki konstrukcji kompilatorów; E.K. 3. Student rozróżnia dwie metody analizy składniowej (zstępująca, wstępująca), ma świadomość różnic między nimi oraz ograniczeń każdej z nich; E.K. 4. Student przygotowuje gramatyki bezkontekstowe a następnie wykorzystuje je w tworzeniu analizatorów; E.K. 5. Student posługuje się narzędziami wykorzystywanymi współcześnie do budowy kompilatorów; E.K. 6. Student tworzy analizatory leksykalne i składniowe przy użyciu generatorów typu LEX, LLGEN, YACC. Powyższe efekty kształcenia osiągane w ramach przedmiotu pozwalają na realizację kierunkowych efektów kształcenia, mających następujące oznaczenia w programie Informatyka II stopnia: 1100I-2A_W03, 1100I-2A_U02, 1100I-2A_U03, 1100I-2A_U11, 1100I-2A_U12, 1100I-2A_U14, 1100I-2A_K02, 1100I-2A_K03, 1100I-2A_K05, 1100I-2A_K06, 1100Isi-2A_W13, 1100Isi-2A_U17. |
Zajęcia w cyklu "Semestr letni 2023/2024" (w trakcie)
Okres: | 2024-02-26 - 2024-09-30 |
Przejdź do planu
PN WT ŚR CZ PT SO LI
LI
N W
LI
|
Typ zajęć: |
Ćwiczenia informatyczne, 16 godzin
Wykład, 16 godzin
|
|
Koordynatorzy: | Robert Plebaniak | |
Prowadzący grup: | Robert Plebaniak | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Ocena zgodna z regulaminem studiów
Ćwiczenia informatyczne - Ocena zgodna z regulaminem studiów Wykład - Ocena zgodna z regulaminem studiów |
|
Metody dydaktyczne: | Wykład prowadzony jest tradycyjną metodą, treści wykładu prezentowane są w formie multimedialnej; Ćwiczenia prowadzone są w formie pogadanki, ogólnej dyskusji. Na zajęciach część projektów jest prezentowana przez prowadzącego. Forma ta jest uzupełniona o krótkie projekty przygotowane przez Studenta. |
|
Sposoby i kryteria oceniania: | Podstawą oceny ćwiczeń są projekty zaliczeniowe: 1) pierwszy dotyczy implementacji automatów skończonych - E.K.1. ; 2) drugi tworzenia analizatorów leksykalnych - E.K.2, E.K.4., E.K.5., E.K.6.; 3) trzeci współpracy generatorów LLGEN i LEX - E.K.3, E.K.4., E.K.5., E.K.6.; 4) czwarty współpracy generatorów YACC i LEX - E.K.3, E.K.4., E.K.5., E.K.6.; Każdy projekt składa się z dwóch części za każdą można otrzymać 10 pkt. Uzyskanie połowy dostępnej liczby punktów plus 1 pkt, gwarantuje zaliczenie przedmiotu. Podstawą oceny wykładów jest uzyskanie zaliczenia z ćwiczeń. |
|
Treści kształcenia: | 1. Etapy kompilacji; 2. Deterministyczne i niedetrministyczne automaty skończone- implementacja; 3. Języki formalne i gramatyki bezkontekstowe; 4. Analiza leksykalna, składniowa; 5. Analiza metodą wstępującą, zstępującą; 6. Generatory LEX, LLGEN i YACC; 7. Tworzenie analizatorów leksykalnych za pomocą generatora LEX; 8. Tworzenie analizatorów składniowych za pomocą generatora LLGEN i YACC; 9. Współpraca LLGEN-a z LEX-em; 10. Współpraca YACC-a z LEX-em; |
|
Literatura: |
[1]. A. V. Aho, R. Sethi, J.D. Ullman. - Kompilatory reguły, metody i narzędzia; [2]. http://www.gnu.org/software/bison/manual [3]. W. M. Waite, G. Goos. - Konstrukcja kompilatorów; [4]. Krasiński T. - Automaty i języki formalne; [5]. http://tack.sourceforgen.net/doc/LLgen.html. źródła internetowe: http://www.gnu.org/software/bison/manual http://tack.sourceforgen.net/doc/LLgen.html www.wazniak.mimuw.edu.pl |
Zajęcia w cyklu "Semestr letni 2022/2023" (zakończony)
Okres: | 2023-02-20 - 2023-09-30 |
Przejdź do planu
PN WT ŚR CZ PT SO W
LI
|
Typ zajęć: |
Ćwiczenia informatyczne, 16 godzin
Wykład, 16 godzin
|
|
Koordynatorzy: | (brak danych) | |
Prowadzący grup: | (brak danych) | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Ocena zgodna z regulaminem studiów
Ćwiczenia informatyczne - Ocena zgodna z regulaminem studiów Wykład - Ocena zgodna z regulaminem studiów |
Zajęcia w cyklu "Semestr letni 2021/2022" (zakończony)
Okres: | 2022-02-21 - 2022-09-30 |
Przejdź do planu
PN WT ŚR CZ PT SO W
LI
|
Typ zajęć: |
Ćwiczenia informatyczne, 16 godzin
Wykład, 16 godzin
|
|
Koordynatorzy: | Robert Plebaniak | |
Prowadzący grup: | Robert Plebaniak | |
Strona przedmiotu: | http://math.uni.lodz.pl/~robpleb/?strona=7 | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Ocena zgodna z regulaminem studiów
Ćwiczenia informatyczne - Ocena zgodna z regulaminem studiów Wykład - Ocena zgodna z regulaminem studiów |
|
Metody dydaktyczne: | Wykład prowadzony jest tradycyjną metodą, treści wykłądu prezentowane są w formie multimedialnej; Ćwiczenia prowadzone są w formie pogadanki, ogólnej dyskusji. Na zajęciach część projektów jest prezentowana przez prowadzącego. Forma ta jest uzupełniona o krótkie projekty przygotowane przez Studenta. |
|
Sposoby i kryteria oceniania: | Podstawą oceny ćwiczeń są projekty zaliczeniowe: 1) pierwszy dotyczy implementacji automatów skończonych - E.K.1. ; 2) drugi tworzenia analizatorów leksykalnych - E.K.2, E.K.4., E.K.5., E.K.6.; 3) trzeci współpracy generatorów LLGEN i LEX - E.K.3, E.K.4., E.K.5., E.K.6. Każdy projekt składa się z dwóch części za każdą można otrzymać 10 pkt. Uzyskanie połowy dostępnej liczby punktów plus 1 pkt, gwarantuje zaliczenie przedmiotu. Podstawą oceny wykładów jest uzyskanie zaliczenia z ćwiczeń oraz pozytywna ocena z egzaminu ustnego. |
|
Treści kształcenia: | 1. Etapy kompilacji; 2. Deterministyczne i niedetrministyczne automaty skończone- implementacja; 3. Języki formalne i gramatyki bezkontekstowe; 4. Analiza leksykalna, składniowa; 5. Analiza metodą wstępującą, zstępującą; 6. Generatory LEX, LLGEN i YACC; 7. Tworzenie analizatorów leksykalnych za pomocą generatora LEX; 8. Tworzenie analizatorów składniowych za pomocą generatora LLGEN i YACC; 9. Współpraca LLGEN-a z LEX-em; 10. Współpraca YACC-a z LEX-em; |
|
Literatura: |
[1]. Krasiński T. - Automaty i języki formalne; [2]. A. V. Aho, R. Sethi, J.D. Ullman. - Kompilatory reguły, metody i narzędzia; [3]. W. M. Waite, G. Goos. - Konstrukcja kompilatorów; [4]. http://www.gnu.org/software/bison/manual [5]. http://tack.sourceforgen.net/doc/LLgen.html [6]. www.wazniak.mimuw.edu.pl [7] http://www.gnu.org/software/bison/manual [8] http://tack.sourceforgen.net/doc/LLgen.html [9] www.wazniak.mimuw.edu.pl |
Zajęcia w cyklu "Semestr letni 2020/2021" (zakończony)
Okres: | 2021-03-08 - 2021-09-30 |
Przejdź do planu
PN WT ŚR CZ PT SO W
LI
|
Typ zajęć: |
Ćwiczenia informatyczne, 16 godzin
Wykład, 16 godzin
|
|
Koordynatorzy: | Robert Plebaniak | |
Prowadzący grup: | Robert Plebaniak | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Ocena zgodna z regulaminem studiów
Ćwiczenia informatyczne - Ocena zgodna z regulaminem studiów Wykład - Ocena zgodna z regulaminem studiów |
|
Metody dydaktyczne: | Wykład prowadzony jest tradycyjną metodą, treści wykłądu prezentowane są w formie multimedialnej; Ćwiczenia prowadzone są w formie pogadanki, ogólnej dyskusji. Na zajęciach część projektów jest prezentowana przez prowadzącego. Forma ta jest uzupełniona o krótkie projekty przygotowane przez Studenta. |
|
Sposoby i kryteria oceniania: | Podstawą oceny ćwiczeń są projekty zaliczeniowe: 1) pierwszy dotyczy implementacji automatów skończonych - E.K.1. ; 2) drugi tworzenia analizatorów leksykalnych - E.K.2, E.K.4., E.K.5., E.K.6.; 3) trzeci współpracy generatorów LLGEN i LEX - E.K.3, E.K.4., E.K.5., E.K.6. Każdy projekt składa się z dwóch części za każdą można otrzymać 10 pkt. Uzyskanie połowy dostępnej liczby punktów plus 1 pkt, gwarantuje zaliczenie przedmiotu. Podstawą oceny wykładów jest uzyskanie zaliczenia z ćwiczeń oraz pozytywna ocena z egzaminu ustnego. |
|
Treści kształcenia: | 1. Etapy kompilacji; 2. Deterministyczne i niedetrministyczne automaty skończone- implementacja; 3. Języki formalne i gramatyki bezkontekstowe; 4. Analiza leksykalna, składniowa; 5. Analiza metodą wstępującą, zstępującą; 6. Generatory LEX, LLGEN i YACC; 7. Tworzenie analizatorów leksykalnych za pomocą generatora LEX; 8. Tworzenie analizatorów składniowych za pomocą generatora LLGEN i YACC; 9. Współpraca LLGEN-a z LEX-em; 10. Współpraca YACC-a z LEX-em; |
|
Literatura: |
[1]. Krasiński T. - Automaty i języki formalne; [2]. A. V. Aho, R. Sethi, J.D. Ullman. - Kompilatory reguły, metody i narzędzia; [3]. W. M. Waite, G. Goos. - Konstrukcja kompilatorów; [4]. http://www.gnu.org/software/bison/manual [5]. http://tack.sourceforgen.net/doc/LLgen.html [6] www.wazniak.mimuw.edu.pl [7] http://www.gnu.org/software/bison/manual [8] http://tack.sourceforgen.net/doc/LLgen.html [9] www.wazniak.mimuw.edu.pl |
Zajęcia w cyklu "Semestr zimowy 2019/2020" (zakończony)
Okres: | 2019-10-01 - 2020-02-23 |
Przejdź do planu
PN WT ŚR CZ PT SO N W
LI
|
Typ zajęć: |
Ćwiczenia informatyczne, 16 godzin
Wykład, 16 godzin
|
|
Koordynatorzy: | Robert Plebaniak | |
Prowadzący grup: | Robert Plebaniak | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Ocena zgodna z regulaminem studiów
Ćwiczenia informatyczne - Ocena zgodna z regulaminem studiów Wykład - Ocena zgodna z regulaminem studiów |
|
Metody dydaktyczne: | Wykład prowadzony jest tradycyjną metodą, treści wykłądu prezentowane są w formie multimedialnej; Ćwiczenia prowadzone są w formie pogadanki, ogólnej dyskusji. Na zajęciach część projektów jest prezentowana przez prowadzącego. Forma ta jest uzupełniona o krótkie projekty przygotowane przez Studenta. |
|
Sposoby i kryteria oceniania: | Podstawą oceny ćwiczeń są projekty zaliczeniowe: 1) pierwszy dotyczy implementacji automatów skończonych - E.K.1. ; 2) drugi tworzenia analizatorów leksykalnych - E.K.2, E.K.4., E.K.5., E.K.6.; 3) trzeci współpracy generatorów LLGEN i LEX - E.K.3, E.K.4., E.K.5., E.K.6. Każdy projekt składa się z dwóch części za każdą można otrzymać 10 pkt. Uzyskanie połowy dostępnej liczby punktów plus 1 pkt, gwarantuje zaliczenie przedmiotu. Podstawą oceny wykładów jest uzyskanie zaliczenia z ćwiczeń oraz pozytywna ocena z egzaminu ustnego. |
|
Treści kształcenia: | 1. Etapy kompilacji; 2. Deterministyczne i niedetrministyczne automaty skończone- implementacja; 3. Języki formalne i gramatyki bezkontekstowe; 4. Analiza leksykalna, składniowa; 5. Analiza metodą wstępującą, zstępującą; 6. Generatory LEX, LLGEN i YACC; 7. Tworzenie analizatorów leksykalnych za pomocą generatora LEX; 8. Tworzenie analizatorów składniowych za pomocą generatora LLGEN i YACC; 9. Współpraca LLGEN-a z LEX-em; 10. Współpraca YACC-a z LEX-em; |
|
Literatura: |
[1]. Krasiński T. - Automaty i języki formalne; [2]. A. V. Aho, R. Sethi, J.D. Ullman. - Kompilatory reguły, metody i narzędzia; [3]. W. M. Waite, G. Goos. - Konstrukcja kompilatorów; [4]. http://www.gnu.org/software/bison/manual [5]. http://tack.sourceforgen.net/doc/LLgen.html[6]. www.wazniak.mimuw.edu.pl źródła internetowe: http://www.gnu.org/software/bison/manual http://tack.sourceforgen.net/doc/LLgen.html www.wazniak.mimuw.edu.pl |
Zajęcia w cyklu "Semestr zimowy 2018/2019" (zakończony)
Okres: | 2018-10-01 - 2019-02-10 |
Przejdź do planu
PN WT ŚR CZ PT SO N W
LI
|
Typ zajęć: |
Ćwiczenia informatyczne, 16 godzin
Wykład, 16 godzin
|
|
Koordynatorzy: | Robert Plebaniak | |
Prowadzący grup: | Robert Plebaniak | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Ocena zgodna z regulaminem studiów
Ćwiczenia informatyczne - Ocena zgodna z regulaminem studiów Wykład - Ocena zgodna z regulaminem studiów |
|
Metody dydaktyczne: | Wykład prowadzony jest tradycyjną metodą, treści wykłądu prezentowane są w formie multimedialnej; Ćwiczenia prowadzone są w formie pogadanki, ogólnej dyskusji. Na zajęciach część projektów jest prezentowana przez prowadzącego. Forma ta jest uzupełniona o krótkie projekty przygotowane przez Studenta. |
|
Sposoby i kryteria oceniania: | Podstawą oceny ćwiczeń są projekty zaliczeniowe: 1) pierwszy dotyczy implementacji automatów skończonych - E.K.1. ; 2) drugi tworzenia analizatorów leksykalnych - E.K.2, E.K.4., E.K.5., E.K.6.; 3) trzeci współpracy generatorów LLGEN i LEX - E.K.3, E.K.4., E.K.5., E.K.6. Każdy projekt składa się z dwóch części za każdą można otrzymać 10 pkt. Uzyskanie połowy dostępnej liczby punktów plus 1 pkt, gwarantuje zaliczenie przedmiotu. Podstawą oceny wykładów jest uzyskanie zaliczenia z ćwiczeń oraz pozytywna ocena z egzaminu ustnego. |
|
Treści kształcenia: | 1. Etapy kompilacji; 2. Deterministyczne i niedetrministyczne automaty skończone- implementacja; 3. Języki formalne i gramatyki bezkontekstowe; 4. Analiza leksykalna, składniowa; 5. Analiza metodą wstępującą, zstępującą; 6. Generatory LEX, LLGEN i YACC; 7. Tworzenie analizatorów leksykalnych za pomocą generatora LEX; 8. Tworzenie analizatorów składniowych za pomocą generatora LLGEN i YACC; 9. Współpraca LLGEN-a z LEX-em; 10. Współpraca YACC-a z LEX-em; |
|
Literatura: |
[1]. Krasiński T. - Automaty i języki formalne; [2]. A. V. Aho, R. Sethi, J.D. Ullman. - Kompilatory reguły, metody i narzędzia; [3]. W. M. Waite, G. Goos. - Konstrukcja kompilatorów; [4]. http://www.gnu.org/software/bison/manual [5]. http://tack.sourceforgen.net/doc/LLgen.html[6]. www.wazniak.mimuw.edu.pl źródła internetowe: http://www.gnu.org/software/bison/manual http://tack.sourceforgen.net/doc/LLgen.html www.wazniak.mimuw.edu.pl |
Zajęcia w cyklu "Semestr zimowy 2017/2018" (zakończony)
Okres: | 2017-10-01 - 2018-02-09 |
Przejdź do planu
PN WT ŚR CZ PT SO N W
LI
|
Typ zajęć: |
Ćwiczenia informatyczne, 16 godzin
Wykład, 16 godzin
|
|
Koordynatorzy: | Robert Plebaniak | |
Prowadzący grup: | Robert Plebaniak | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Ocena zgodna z regulaminem studiów
Ćwiczenia informatyczne - Ocena zgodna z regulaminem studiów Wykład - Ocena zgodna z regulaminem studiów |
|
Metody dydaktyczne: | Wykład prowadzony jest tradycyjną metodą, treści wykłądu prezentowane są w formie multimedialnej; Ćwiczenia prowadzone są w formie pogadanki, ogólnej dyskusji. Na zajęciach część projektów jest prezentowana przez prowadzącego. Forma ta jest uzupełniona o krótkie projekty przygotowane przez Studenta. |
|
Sposoby i kryteria oceniania: | Podstawą oceny ćwiczeń są projekty zaliczeniowe: 1) pierwszy dotyczy implementacji automatów skończonych - E.K.1. ; 2) drugi tworzenia analizatorów leksykalnych - E.K.2, E.K.4., E.K.5., E.K.6.; 3) trzeci współpracy generatorów LLGEN i LEX - E.K.3, E.K.4., E.K.5., E.K.6. Każdy projekt składa się z dwóch części za każdą można otrzymać 10 pkt. Uzyskanie połowy dostępnej liczby punktów plus 1 pkt, gwarantuje zaliczenie przedmiotu. Podstawą oceny wykładów jest uzyskanie zaliczenia z ćwiczeń oraz pozytywna ocena z egzaminu ustnego. |
|
Treści kształcenia: | 1. Etapy kompilacji; 2. Deterministyczne i niedetrministyczne automaty skończone- implementacja; 3. Języki formalne i gramatyki bezkontekstowe; 4. Analiza leksykalna, składniowa; 5. Analiza metodą wstępującą, zstępującą; 6. Generatory LEX, LLGEN i YACC; 7. Tworzenie analizatorów leksykalnych za pomocą generatora LEX; 8. Tworzenie analizatorów składniowych za pomocą generatora LLGEN i YACC; 9. Współpraca LLGEN-a z LEX-em; 10. Współpraca YACC-a z LEX-em; |
|
Literatura: |
[1]. Krasiński T. - Automaty i języki formalne; [2]. A. V. Aho, R. Sethi, J.D. Ullman. - Kompilatory reguły, metody i narzędzia; [3]. W. M. Waite, G. Goos. - Konstrukcja kompilatorów; [4]. http://www.gnu.org/software/bison/manual [5]. http://tack.sourceforgen.net/doc/LLgen.html[6]. www.wazniak.mimuw.edu.pl źródła internetowe: http://www.gnu.org/software/bison/manual http://tack.sourceforgen.net/doc/LLgen.html www.wazniak.mimuw.edu.pl |
Właścicielem praw autorskich jest UNIWERSYTET ŁÓDZKI.