UNIWERSYTET ŁÓDZKI - Centralny System Uwierzytelniania
Strona główna

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) Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

zobacz reguły punktacji
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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia informatyczne, 16 godzin więcej informacji
Wykład, 16 godzin więcej informacji
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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia informatyczne, 16 godzin więcej informacji
Wykład, 16 godzin więcej informacji
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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia informatyczne, 16 godzin więcej informacji
Wykład, 16 godzin więcej informacji
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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia informatyczne, 16 godzin więcej informacji
Wykład, 16 godzin więcej informacji
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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia informatyczne, 16 godzin więcej informacji
Wykład, 16 godzin więcej informacji
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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia informatyczne, 16 godzin więcej informacji
Wykład, 16 godzin więcej informacji
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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia informatyczne, 16 godzin więcej informacji
Wykład, 16 godzin więcej informacji
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

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest UNIWERSYTET ŁÓDZKI.
kontakt deklaracja dostępności USOSweb 7.0.3.0-0