Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (S1)
specjalność: systemy komputerowe i oprogramowanie

Sylabus przedmiotu Metody kompilacji:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia stacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów nauk technicznych, studiów inżynierskich
Profil ogólnoakademicki
Moduł
Przedmiot Metody kompilacji
Specjalność systemy komputerowe i oprogramowanie
Jednostka prowadząca Katedra Inżynierii Oprogramowania
Nauczyciel odpowiedzialny Włodzimierz Bielecki <Wlodzimierz.Bielecki@zut.edu.pl>
Inni nauczyciele Piotr Błaszyński <Piotr.Blaszynski@zut.edu.pl>
ECTS (planowane) 4,0 ECTS (formy) 4,0
Forma zaliczenia egzamin Język polski
Blok obieralny 5 Grupa obieralna 1

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
wykładyW6 30 1,90,50egzamin
laboratoriaL6 20 2,10,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1Zaliczone przedmioty: Programowanie w językach C i Java, Struktury danych, Architektura komputerów

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
C-2Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie tworzenia kompilatorów

Treści programowe z podziałem na formy zajęć

KODTreść programowaGodziny
laboratoria
T-L-1Definiowanie prostej architektury komputera i języka programowania tego komputera.2
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX3
T-L-3Implementacja analizatora składniowego dla zdefioniowanego języka przy pomocy narzędzia BISON.3
T-L-4Implementacja zdefiniowanych akcji semantycznych.2
T-L-5Implementacja generatora kodu dla wyrażeń arytmetycznych dla zdefionowanej architektury komputera3
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.3
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.1
T-L-8Implementacja generatora kodu dla różnych typów danych.1
T-L-9Implementacja wywołań funkcji2
20
wykłady
T-W-1Definicja translatora, kompilatora, interpretera Fazy kompilacji Struktura przodu kompilatora Struktura tylnej części kompilatora Definicja produkcji Definicja epsilon-produkcji Definicja gramatyki Gramatyki bezkontekstowe Gramatyki niejednocznaczne Definicja języka Drzewa wyprowadzeń2
T-W-2Łączność operatorów Priorytety operatorów a odpowiednia gramatyka Translacja sterowana składnią Definicja sterowana składnią Atrybuty syntezowane Przechodzenie drzewa w głąb Schemat translacji2
T-W-3Zstępująca analiza składniowa Przewidująca analiza składniowa Lewostronna rekurencja Składnia abstrakcyjna i składnia konkretna Translator dla prostych wyrażeń2
T-W-4Proste metody analizy leksykalnej: usuwanie znaków odstępu I komentarzy, rozpoznanie identyfikatorów i słów kluczowych Prosty analizator leksykalny Implementacja tablicy symboli L-wartości i R-wartości Translacja wyrażeń z zastosowaniem stosu2
T-W-5Symbole leksykalne, wzorce, leksemy Leksemy i tokeny Atrybuty symboli leksykalnych Błędy leksykalne Buforowanie w analizie leksykalnej Napisy i języki Operacje na językach2
T-W-6Wyrażenia regularne Definicje regularne Skróty notacyjne w wyrażeniach regularnych Rozpoznanie symboli leksykalnych Diagramy przejść2
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne2
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń2
T-W-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW2
T-W-10Budowa tablic przewidujących Gramatyka LL(1) Architektura parsera LL(1) i sposób jego działania2
T-W-11Redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego2
T-W-12Co to jest LR(0) sytuacja Automat LR(0) Gramatyka wzbogacona2
T-W-13Domknięcie zbioru sytuacji Architektura i algorytm LR parsera Tworzenie tablic parsera SLR(1)2
T-W-14Parser LR(1) Parser LALR(1)2
T-W-15Narzędzia YACC i BISON2
30

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1udział w laboratoriach20
A-L-2przygotowanie do laboratoriów40
A-L-3Udział w konsultacjach i zaliczeniu formy zajęć.2
62
wykłady
A-W-1UdziaL w wykładach30
A-W-2Przygotowanie do egzaminu20
A-W-3Udział w egzaminie2
A-W-4Udział w konsultacjach2
54

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1Wykad informacyjny/konwerrsatoryjny
M-2Ćwiczenia laboratoryjne

Sposoby oceny

KODSposób oceny
S-1Ocena formująca: Ocena stopnia wykonywania zadań praktycznych pod koniec każdych laboratoriów
S-2Ocena podsumowująca: Zaliczenie końcowe poprzez sprawdzenie efektów kształcenia: przedstawienie pytań i ocena odpowiedzi

Zamierzone efekty kształcenia - wiedza

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
1AW_I_O1/1_W01
ma wiedzę w zakresie algorytmów projektowania kompilatorw
I_1A_W05T1A_W03, T1A_W07InzA_W02C-1T-L-6, T-L-8, T-W-3, T-L-1, T-L-9, T-W-4, T-W-10, T-L-4, T-W-6, T-L-3, T-W-14, T-W-5, T-W-7, T-W-2, T-W-1, T-L-2, T-W-8, T-L-7, T-W-15, T-L-5, T-W-9, T-W-13, T-W-11, T-W-12M-1S-2
1AW_I_O1/1_W02
zna narzędzia do tworzenia kompilatorów
I_1A_W06T1A_W03, T1A_W05, T1A_W06, T1A_W07, T1A_W09InzA_W01, InzA_W02, InzA_W04, InzA_W05C-1T-W-8, T-L-6, T-W-10, T-W-12, T-W-13, T-W-7, T-L-7, T-L-1, T-L-5, T-L-2, T-W-1, T-W-4, T-L-8, T-L-3, T-L-9, T-W-11, T-W-2, T-L-4, T-W-6, T-W-5, T-W-14, T-W-9, T-W-15, T-W-3M-1S-2
1AW_I_O1/1_W03
zna metody i techniki służące do komunikacji człowieka z komputerem poprzez tworzenie kompilatorów i translatorów
I_1A_W14T1A_W03, T1A_W07, T1A_W08InzA_W02, InzA_W03, InzA_W05C-1T-L-6, T-W-14, T-W-6, T-W-4, T-L-3, T-W-5, T-L-4, T-W-10, T-L-8, T-L-9, T-W-8, T-W-1, T-L-5, T-W-2, T-W-11, T-W-13, T-W-15, T-W-7, T-W-12, T-W-3, T-L-1, T-L-2, T-L-7, T-W-9M-1S-2
1AW_I_O1/1_W04
zna podstawowe metody przetwarzania danych i informacji
I_1A_W17T1A_W03, T1A_W07InzA_W02, InzA_W05C-1T-L-8, T-L-7, T-W-6, T-L-1, T-L-4, T-W-8, T-W-2, T-W-15, T-W-1, T-W-5, T-W-4, T-W-3, T-W-14, T-W-7, T-W-9, T-L-2, T-L-9, T-L-5, T-W-11, T-W-12, T-L-3, T-W-13, T-L-6, T-W-10M-1S-2

Zamierzone efekty kształcenia - umiejętności

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
1AU_I_O1/1_U01
potrafi w zakresie podstawowym projektować, implementować i testować kompilatory i translatory
I_1A_U01T1A_U01, T1A_U02, T1A_U04, T1A_U07, T1A_U08, T1A_U09, T1A_U14, T1A_U15, T1A_U16InzA_U01, InzA_U02, InzA_U06, InzA_U07, InzA_U08C-1T-W-1, T-W-10, T-W-6, T-L-4, T-W-8, T-L-3, T-L-2, T-L-5, T-W-9, T-W-5, T-W-15, T-W-13, T-W-7, T-W-4, T-L-8, T-W-2, T-W-11, T-W-12, T-W-14, T-W-3, T-L-6, T-L-1, T-L-7, T-L-9M-2S-1
1AU_I_O1/1_U02
Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania kompilatorów i translatorów
I_1A_U02T1A_U02, T1A_U03, T1A_U04, T1A_U07, T1A_U11, T1A_U12InzA_U01, InzA_U02, InzA_U03, InzA_U05, InzA_U06, InzA_U07, InzA_U08C-1T-W-6, T-W-12, T-W-4, T-L-6, T-W-5, T-W-10, T-W-3, T-L-2, T-W-1, T-W-8, T-L-5, T-W-9, T-L-7, T-L-4, T-W-2, T-W-11, T-W-14, T-W-7, T-L-8, T-L-3, T-L-1, T-L-9, T-W-13, T-W-15M-2S-1
1AU_I_O1/1_U03
Potrafi posługiwać się dokumentacją techniczną do narzędzi wsperające wytwarzanie kompilatorów
I_1A_U05T1A_U01, T1A_U02, T1A_U06, T1A_U07, T1A_U13InzA_U05C-1T-W-1, T-W-9, T-L-9, T-W-6, T-W-10, T-W-5, T-L-8, T-L-1, T-W-3, T-W-2, T-W-12, T-L-2, T-W-11, T-W-15, T-L-3, T-W-8, T-W-13, T-W-14, T-W-7, T-L-6, T-L-5, T-L-7, T-W-4, T-L-4M-2S-1
1AU_I_O1/1_U04
ma umiejętność opracowania lub wyboru algorytmu i struktur danych do tworzenia kompilatorów
I_1A_U19T1A_U13, T1A_U15, T1A_U16InzA_U05, InzA_U07, InzA_U08C-1T-W-9, T-W-1, T-W-7, T-W-15, T-L-9, T-W-4, T-L-6, T-W-14, T-L-3, T-W-8, T-W-6, T-W-3, T-L-5, T-L-2, T-W-5, T-W-10, T-L-7, T-W-12, T-W-13, T-L-1, T-L-4, T-L-8, T-W-11, T-W-2M-1S-1

Zamierzone efekty kształcenia - inne kompetencje społeczne i personalne

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
1AK_I_O1/1_K01
świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie metod i narzędzi do tworzenia kompilatorów
I_1A_K01T1A_K01, T1A_K07C-2T-L-8, T-W-13, T-L-5, T-W-10, T-L-6, T-W-4, T-W-7, T-W-3, T-L-7, T-L-2, T-W-8, T-W-11, T-L-4, T-W-2, T-W-9, T-L-9, T-W-14, T-W-15, T-W-6, T-W-1, T-W-12, T-L-3, T-W-5M-2S-1
1AK_I_O1/1_K02
ma świadomość odpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia kompilatorów
I_1A_K03T1A_K02, T1A_K03, T1A_K04InzA_K01C-2T-W-1, T-W-7, T-W-15, T-W-12, T-L-7, T-L-1, T-W-3, T-L-6, T-W-6, T-W-5, T-W-10, T-W-13, T-W-11, T-L-4, T-W-4, T-W-2, T-L-5, T-L-9, T-W-9, T-L-8, T-W-14, T-L-2, T-L-3, T-W-8M-2S-1

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium oceny
1AW_I_O1/1_W01
ma wiedzę w zakresie algorytmów projektowania kompilatorw
2,0nie zna podstawowych metod projektowania kompilatorów
3,0zna podstawowe metody projektowania kompilatorów oraz rozumie potrzebę projektowania kompilatorów na ogólnym poziomie
3,5zna szczegółowo podstawowe metody projektowania kompilatorów oraz rozumie potrzebę projektowaniakompilatorów na ogólnym poziomie
4,0zna szczegółowo podstawowe metody projektowania kompilatorów oraz wie jak zastosować je do projektowania prostych kompilatorów
4,5zna szczegółowo zaawansowane metody projektowania kompilatorów oraz wie jak zastosować je do projektowania kompilatorów
5,0zna szczegółowo zaawansowane metody projektowania kompilatorów oraz wie jak zastosować je do projektowania kompilatorów, oraz potrafi udowodnić i uzasadnić swoją wypowiedż
1AW_I_O1/1_W02
zna narzędzia do tworzenia kompilatorów
2,0nie ma więdzy o narzędziach do analizy leksykalnej i syntaktycznej
3,0ma podstawową więdzę o narzędziach do analizy leksykalnej i syntaktycznej
3,5Ma wiedzę o narzedziu LEX do projektowania analizatorów leksykalnych
4,0Ma wiedzę o narzedziu LEX do projektowania analizatorów leksykalnych oraz narzędziu YACC do projektowania analizatorów składniowych
4,5Ma szczegóową wiedzę o narzedziu LEX do projektowania analizatorów leksykalnych oraz narzędziu YACC do projektowania analizatorów składniowych
5,0Ma szczegóową wiedzę o narzedziu LEX do projektowania analizatorów leksykalnych oraz narzędziu YACC do projektowania analizatorów składniowych oraz wie jak zastosować wiedze do projektowaniua analizatorów leksykalnych i składniowych
1AW_I_O1/1_W03
zna metody i techniki służące do komunikacji człowieka z komputerem poprzez tworzenie kompilatorów i translatorów
2,0nie zna podstawowych metod projektowania kompilatorów
3,0zna podstawowe metody projektowania kompilatorów oraz rozumie potrzebę projektowania kompilatorów na ogólnym poziomie
3,5zna szczegółowo podstawowe metody projektowania kompilatorów oraz rozumie potrzebę projektowania kompilatorów na ogólnym poziomie
4,0zna szczegółowo podstawowe metody projektowania kompilatorów oraz wie jak zastosować je do projektowania prostych kompilatorów
4,5zna szczegółowo zaawansowane metody projektowania kompilatorów oraz wie jak zastosować je do projektowania kompilatorów
5,0zna szczegółowo zaawansowane metody projektowania kompilatorów oraz wie jak zastosować je do projektowania kompilatorów, oraz potrafi udowodnić i uzasadnić swoją wypowiedż
1AW_I_O1/1_W04
zna podstawowe metody przetwarzania danych i informacji
2,0nie zna podstawowych metod projektowania kompilatorów
3,0zna podstawowe metody projektowania kompilatorów oraz rozumie potrzebę projektowaniakompilatorów na ogólnym poziomie
3,5zna szczegółowo podstawowe metody projektowania kompilatorów oraz rozumie potrzebę projektowaniakompilatorów na ogólnym poziomie
4,0zna szczegółowo podstawowe metody projektowania kompilatorów oraz wie jak zastosować je do projektowania prostych kompilatorów
4,5zna szczegółowo zaawansowane metody projektowania kompilatorów oraz wie jak zastosować je do projektowania kompilatorów
5,0zna szczegółowo zaawansowane metody projektowania kompilatorów oraz wie jak zastosować je do projektowania kompilatorów, oraz potrafi udowodnić i uzasadnić swoją wypowiedż

Kryterium oceny - umiejętności

Efekt kształceniaOcenaKryterium oceny
1AU_I_O1/1_U01
potrafi w zakresie podstawowym projektować, implementować i testować kompilatory i translatory
2,0nie potrafi zaimplementować prostego kompilatora przekładającego podstawowe wyrażenia arytmetyczne na kod maszynowy.
3,0potrafi zaimplementować bardzo prosty kompilator przekładający podstawowe wyrażenia arytmetyczne operujące na podstawowych typach danych (całkowite i zmiennoprzecinkowe) na kod maszynowy, jest w stanie zaimplementować obsługę instrukcji warunkowych bez zagnieżdżeń.
3,5potrafi wszystko to co na ocenę 3,0 oraz potrafi zastosować zasady dotyczące implementacji instrukcji warunkowych dla zagnieżdżonych konstrukcji.
4,0potrafi wszystko to co na ocenę 3,5 oraz potrafi przeanalizować powstały kod maszynowy w celu minimalizacji liczby skoków przy złożonych instrukcjach warunkowych. Potrafi również zaimplementować kompilacje konstrukcji pętli i tablic jednowymiarowych.
4,5potrafi syntezować pozyskane umiejętności w kompletny kompilator generujący kod z wykorzystaniem konstrukcji wymaganych naocenę 4.0 oraz dodatkowo zaimplementować tablice wielowymiarowe.
5,0potrafi syntezować kompilator generujący kod z wykorzystaniem konstrukcji wymaganych na ocenę 4.5 oraz zaproponować i wykonać dodatkowe funkcjonalności (np. obsługę funkcji, generowanie kodu dla architektury 64-bitowej)
1AU_I_O1/1_U02
Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania kompilatorów i translatorów
2,0nie jest w stanie uczestniczyć w pracach zespołu przygotowującym projekt języka i kompilatora
3,0potrafi uczestniczyć w zespole przygotowującym projekt języka i kompilatora
3,5potrafi aktywnie uczestniczyć w zespole przygotowującym projekt języka i kompilatora
4,0potrafi aktywnie uczestniczyć w zespole przygotowującym projekt języka i kompilatora oraz analizować proponowane rozwiązania
4,5wymagania na ocene 4.0 oraz potrafi dodawać istotne propozycje w realizowanym projekcie
5,0wymagania na ocene 4.5 oraz potrafi wyjaśnić innym studentom w zespole zagadnienia dotyczące budowy kompilatora
1AU_I_O1/1_U03
Potrafi posługiwać się dokumentacją techniczną do narzędzi wsperające wytwarzanie kompilatorów
2,0nie potrafi zastosować dostępnej dokumentacji technicznej do implementacji kompilatora
3,0potrafi przy pomocy prowadzącego i na podstawie dostępnej dokumentacji zaimplementować podstawowe funkcje kompilatora przy wykorzystaniu narzędzi LEX /FLEX oraz YACC/BISON
3,5potrafi przy pomocy prowadzącego i na podstawie dostępnej dokumentacji zaimplementować rozbudowane funkcje kompilatora przy wykorzystaniu narzędzi LEX/FLEX oraz YACC/BISON
4,0potrafi samodzielnie na podstawie dostępnej dokumentacji zaimplementować podstawowe funkcje kompilatora przy wykorzystaniu narzędzi LEX /FLEX oraz YACC/BISON
4,5potrafi samodzielnie na podstawie dostępnej dokumentacji zaimplementować rozbudowane funkcje kompilatora przy wykorzystaniu narzędzi LEX /FLEX oraz YACC/BISON
5,0potrafi samodzielnie na podstawie dostępnej dokumentacji zaimplementować rozbudowane funkcje kompilatora przy wykorzystaniu narzędzi LEX /FLEX oraz YACC/BISON oraz potrafi wyjaśnić innym studentom w zespole zagadnienia dotyczące budowy kompilatora
1AU_I_O1/1_U04
ma umiejętność opracowania lub wyboru algorytmu i struktur danych do tworzenia kompilatorów
2,0nie potrafi zastosować podstawowych algorytmów budowy kompilatorów
3,0potrafi zastosować lub zmodyfikować podstawowe algorytmy przedstawione na wykładach do budowy kompilatora pozwalającego na implementacje wyrażeń arytmetycznych
3,5potrafi zastosować lub zmodyfikować podstawowe algorytmy przedstawione na wykładach do budowy kompilatora pozwalającego na implementacje wyrażeń arytmetycznych oraz tablic jednowymiarowych
4,0potrafi zastosować lub zmodyfikować podstawowe algorytmy przedstawione na wykładach do budowy kompilatora pozwalającego na implementacje wyrażeń arytmetycznych, tablic jednowymiarowych
4,5potrafi zastosować lub zmodyfikować podstawowe algorytmy przedstawione na wykładach do budowy kompilatora pozwalającego na implementacje wyrażeń arytmetycznych, tablic jednowymiarowych oraz instrukcji warunkowych
5,0potrafi zastosować lub zmodyfikować podstawowe algorytmy przedstawione na wykładach do budowy kompilatora pozwalającego na implementacje wyrażeń arytmetycznych, tablic wielowymiarowych oraz instrukcji warunkowych

Kryterium oceny - inne kompetencje społeczne i personalne

Efekt kształceniaOcenaKryterium oceny
1AK_I_O1/1_K01
świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie metod i narzędzi do tworzenia kompilatorów
2,0nie potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów
3,0Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 3,0
3,5Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 3,5
4,0Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 4,0
4,5Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 4,5
5,0Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 5,0
1AK_I_O1/1_K02
ma świadomość odpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia kompilatorów
2,0Nie potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów
3,0Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania z oceną 3,0
3,5Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania z oceną 3,5
4,0Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania z oceną 4,0
4,5Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania z oceną 4,5
5,0Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania z oceną 5,0

Literatura podstawowa

  1. Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, Kompilatory, Reguły, Metody i Narzędzia, WNT, Warszawa, 2002
  2. Aho and al., Compilers: Principles, Techniques, and Tools, Addison Wesley, Boston, 2007

Literatura dodatkowa

  1. R. Wilhelm, D. Maurer, Compiler Design, Addison-Wesley, Boston, 1995

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Definiowanie prostej architektury komputera i języka programowania tego komputera.2
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX3
T-L-3Implementacja analizatora składniowego dla zdefioniowanego języka przy pomocy narzędzia BISON.3
T-L-4Implementacja zdefiniowanych akcji semantycznych.2
T-L-5Implementacja generatora kodu dla wyrażeń arytmetycznych dla zdefionowanej architektury komputera3
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.3
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.1
T-L-8Implementacja generatora kodu dla różnych typów danych.1
T-L-9Implementacja wywołań funkcji2
20

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Definicja translatora, kompilatora, interpretera Fazy kompilacji Struktura przodu kompilatora Struktura tylnej części kompilatora Definicja produkcji Definicja epsilon-produkcji Definicja gramatyki Gramatyki bezkontekstowe Gramatyki niejednocznaczne Definicja języka Drzewa wyprowadzeń2
T-W-2Łączność operatorów Priorytety operatorów a odpowiednia gramatyka Translacja sterowana składnią Definicja sterowana składnią Atrybuty syntezowane Przechodzenie drzewa w głąb Schemat translacji2
T-W-3Zstępująca analiza składniowa Przewidująca analiza składniowa Lewostronna rekurencja Składnia abstrakcyjna i składnia konkretna Translator dla prostych wyrażeń2
T-W-4Proste metody analizy leksykalnej: usuwanie znaków odstępu I komentarzy, rozpoznanie identyfikatorów i słów kluczowych Prosty analizator leksykalny Implementacja tablicy symboli L-wartości i R-wartości Translacja wyrażeń z zastosowaniem stosu2
T-W-5Symbole leksykalne, wzorce, leksemy Leksemy i tokeny Atrybuty symboli leksykalnych Błędy leksykalne Buforowanie w analizie leksykalnej Napisy i języki Operacje na językach2
T-W-6Wyrażenia regularne Definicje regularne Skróty notacyjne w wyrażeniach regularnych Rozpoznanie symboli leksykalnych Diagramy przejść2
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne2
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń2
T-W-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW2
T-W-10Budowa tablic przewidujących Gramatyka LL(1) Architektura parsera LL(1) i sposób jego działania2
T-W-11Redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego2
T-W-12Co to jest LR(0) sytuacja Automat LR(0) Gramatyka wzbogacona2
T-W-13Domknięcie zbioru sytuacji Architektura i algorytm LR parsera Tworzenie tablic parsera SLR(1)2
T-W-14Parser LR(1) Parser LALR(1)2
T-W-15Narzędzia YACC i BISON2
30

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1udział w laboratoriach20
A-L-2przygotowanie do laboratoriów40
A-L-3Udział w konsultacjach i zaliczeniu formy zajęć.2
62
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1UdziaL w wykładach30
A-W-2Przygotowanie do egzaminu20
A-W-3Udział w egzaminie2
A-W-4Udział w konsultacjach2
54
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształcenia1AW_I_O1/1_W01ma wiedzę w zakresie algorytmów projektowania kompilatorw
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W05ma wiedzę w zakresie algorytmizacji i zasad tworzenia struktur danych
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_W03ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną obejmującą kluczowe zagadnienia z zakresu studiowanego kierunku studiów
T1A_W07zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_W02zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-L-8Implementacja generatora kodu dla różnych typów danych.
T-W-3Zstępująca analiza składniowa Przewidująca analiza składniowa Lewostronna rekurencja Składnia abstrakcyjna i składnia konkretna Translator dla prostych wyrażeń
T-L-1Definiowanie prostej architektury komputera i języka programowania tego komputera.
T-L-9Implementacja wywołań funkcji
T-W-4Proste metody analizy leksykalnej: usuwanie znaków odstępu I komentarzy, rozpoznanie identyfikatorów i słów kluczowych Prosty analizator leksykalny Implementacja tablicy symboli L-wartości i R-wartości Translacja wyrażeń z zastosowaniem stosu
T-W-10Budowa tablic przewidujących Gramatyka LL(1) Architektura parsera LL(1) i sposób jego działania
T-L-4Implementacja zdefiniowanych akcji semantycznych.
T-W-6Wyrażenia regularne Definicje regularne Skróty notacyjne w wyrażeniach regularnych Rozpoznanie symboli leksykalnych Diagramy przejść
T-L-3Implementacja analizatora składniowego dla zdefioniowanego języka przy pomocy narzędzia BISON.
T-W-14Parser LR(1) Parser LALR(1)
T-W-5Symbole leksykalne, wzorce, leksemy Leksemy i tokeny Atrybuty symboli leksykalnych Błędy leksykalne Buforowanie w analizie leksykalnej Napisy i języki Operacje na językach
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
T-W-2Łączność operatorów Priorytety operatorów a odpowiednia gramatyka Translacja sterowana składnią Definicja sterowana składnią Atrybuty syntezowane Przechodzenie drzewa w głąb Schemat translacji
T-W-1Definicja translatora, kompilatora, interpretera Fazy kompilacji Struktura przodu kompilatora Struktura tylnej części kompilatora Definicja produkcji Definicja epsilon-produkcji Definicja gramatyki Gramatyki bezkontekstowe Gramatyki niejednocznaczne Definicja języka Drzewa wyprowadzeń
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-W-15Narzędzia YACC i BISON
T-L-5Implementacja generatora kodu dla wyrażeń arytmetycznych dla zdefionowanej architektury komputera
T-W-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
T-W-13Domknięcie zbioru sytuacji Architektura i algorytm LR parsera Tworzenie tablic parsera SLR(1)
T-W-11Redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-12Co to jest LR(0) sytuacja Automat LR(0) Gramatyka wzbogacona
Metody nauczaniaM-1Wykad informacyjny/konwerrsatoryjny
Sposób ocenyS-2Ocena podsumowująca: Zaliczenie końcowe poprzez sprawdzenie efektów kształcenia: przedstawienie pytań i ocena odpowiedzi
Kryteria ocenyOcenaKryterium oceny
2,0nie zna podstawowych metod projektowania kompilatorów
3,0zna podstawowe metody projektowania kompilatorów oraz rozumie potrzebę projektowania kompilatorów na ogólnym poziomie
3,5zna szczegółowo podstawowe metody projektowania kompilatorów oraz rozumie potrzebę projektowaniakompilatorów na ogólnym poziomie
4,0zna szczegółowo podstawowe metody projektowania kompilatorów oraz wie jak zastosować je do projektowania prostych kompilatorów
4,5zna szczegółowo zaawansowane metody projektowania kompilatorów oraz wie jak zastosować je do projektowania kompilatorów
5,0zna szczegółowo zaawansowane metody projektowania kompilatorów oraz wie jak zastosować je do projektowania kompilatorów, oraz potrafi udowodnić i uzasadnić swoją wypowiedż
PoleKODZnaczenie kodu
Zamierzone efekty kształcenia1AW_I_O1/1_W02zna narzędzia do tworzenia kompilatorów
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W06zna wybrane języki i techniki programowania, podstawowe techniki projektowania i wytwarzania aplikacji oraz systemów informatycznych
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_W03ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną obejmującą kluczowe zagadnienia z zakresu studiowanego kierunku studiów
T1A_W05ma podstawową wiedzę o trendach rozwojowych z zakresu dziedzin nauki i dyscyplin naukowych, właściwych dla studiowanego kierunku studiów
T1A_W06ma podstawową wiedzę o cyklu życia urządzeń, obiektów i systemów technicznych
T1A_W07zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
T1A_W09ma podstawową wiedzę dotyczącą zarządzania, w tym zarządzania jakością, i prowadzenia działalności gospodarczej
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_W01ma podstawową wiedzę o cyklu życia urządzeń, obiektów i systemów technicznych
InzA_W02zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
InzA_W04ma podstawową wiedzę dotyczącą zarządzania, w tym zarządzania jakością, i prowadzenia działalności gospodarczej
InzA_W05zna typowe technologie inżynierskie w zakresie studiowanego kierunku studiów
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-W-10Budowa tablic przewidujących Gramatyka LL(1) Architektura parsera LL(1) i sposób jego działania
T-W-12Co to jest LR(0) sytuacja Automat LR(0) Gramatyka wzbogacona
T-W-13Domknięcie zbioru sytuacji Architektura i algorytm LR parsera Tworzenie tablic parsera SLR(1)
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-L-1Definiowanie prostej architektury komputera i języka programowania tego komputera.
T-L-5Implementacja generatora kodu dla wyrażeń arytmetycznych dla zdefionowanej architektury komputera
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-W-1Definicja translatora, kompilatora, interpretera Fazy kompilacji Struktura przodu kompilatora Struktura tylnej części kompilatora Definicja produkcji Definicja epsilon-produkcji Definicja gramatyki Gramatyki bezkontekstowe Gramatyki niejednocznaczne Definicja języka Drzewa wyprowadzeń
T-W-4Proste metody analizy leksykalnej: usuwanie znaków odstępu I komentarzy, rozpoznanie identyfikatorów i słów kluczowych Prosty analizator leksykalny Implementacja tablicy symboli L-wartości i R-wartości Translacja wyrażeń z zastosowaniem stosu
T-L-8Implementacja generatora kodu dla różnych typów danych.
T-L-3Implementacja analizatora składniowego dla zdefioniowanego języka przy pomocy narzędzia BISON.
T-L-9Implementacja wywołań funkcji
T-W-11Redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-2Łączność operatorów Priorytety operatorów a odpowiednia gramatyka Translacja sterowana składnią Definicja sterowana składnią Atrybuty syntezowane Przechodzenie drzewa w głąb Schemat translacji
T-L-4Implementacja zdefiniowanych akcji semantycznych.
T-W-6Wyrażenia regularne Definicje regularne Skróty notacyjne w wyrażeniach regularnych Rozpoznanie symboli leksykalnych Diagramy przejść
T-W-5Symbole leksykalne, wzorce, leksemy Leksemy i tokeny Atrybuty symboli leksykalnych Błędy leksykalne Buforowanie w analizie leksykalnej Napisy i języki Operacje na językach
T-W-14Parser LR(1) Parser LALR(1)
T-W-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
T-W-15Narzędzia YACC i BISON
T-W-3Zstępująca analiza składniowa Przewidująca analiza składniowa Lewostronna rekurencja Składnia abstrakcyjna i składnia konkretna Translator dla prostych wyrażeń
Metody nauczaniaM-1Wykad informacyjny/konwerrsatoryjny
Sposób ocenyS-2Ocena podsumowująca: Zaliczenie końcowe poprzez sprawdzenie efektów kształcenia: przedstawienie pytań i ocena odpowiedzi
Kryteria ocenyOcenaKryterium oceny
2,0nie ma więdzy o narzędziach do analizy leksykalnej i syntaktycznej
3,0ma podstawową więdzę o narzędziach do analizy leksykalnej i syntaktycznej
3,5Ma wiedzę o narzedziu LEX do projektowania analizatorów leksykalnych
4,0Ma wiedzę o narzedziu LEX do projektowania analizatorów leksykalnych oraz narzędziu YACC do projektowania analizatorów składniowych
4,5Ma szczegóową wiedzę o narzedziu LEX do projektowania analizatorów leksykalnych oraz narzędziu YACC do projektowania analizatorów składniowych
5,0Ma szczegóową wiedzę o narzedziu LEX do projektowania analizatorów leksykalnych oraz narzędziu YACC do projektowania analizatorów składniowych oraz wie jak zastosować wiedze do projektowaniua analizatorów leksykalnych i składniowych
PoleKODZnaczenie kodu
Zamierzone efekty kształcenia1AW_I_O1/1_W03zna metody i techniki służące do komunikacji człowieka z komputerem poprzez tworzenie kompilatorów i translatorów
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W14zna wybrane metody i techniki służące do komunikacji człowieka z komputerem
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_W03ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną obejmującą kluczowe zagadnienia z zakresu studiowanego kierunku studiów
T1A_W07zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
T1A_W08ma podstawową wiedzę niezbędną do rozumienia społecznych, ekonomicznych, prawnych i innych pozatechnicznych uwarunkowań działalności inżynierskiej
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_W02zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
InzA_W03ma podstawową wiedzę niezbędną do rozumienia społecznych, ekonomicznych, prawnych i innych uwarunkowań działalności inżynierskiej
InzA_W05zna typowe technologie inżynierskie w zakresie studiowanego kierunku studiów
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-W-14Parser LR(1) Parser LALR(1)
T-W-6Wyrażenia regularne Definicje regularne Skróty notacyjne w wyrażeniach regularnych Rozpoznanie symboli leksykalnych Diagramy przejść
T-W-4Proste metody analizy leksykalnej: usuwanie znaków odstępu I komentarzy, rozpoznanie identyfikatorów i słów kluczowych Prosty analizator leksykalny Implementacja tablicy symboli L-wartości i R-wartości Translacja wyrażeń z zastosowaniem stosu
T-L-3Implementacja analizatora składniowego dla zdefioniowanego języka przy pomocy narzędzia BISON.
T-W-5Symbole leksykalne, wzorce, leksemy Leksemy i tokeny Atrybuty symboli leksykalnych Błędy leksykalne Buforowanie w analizie leksykalnej Napisy i języki Operacje na językach
T-L-4Implementacja zdefiniowanych akcji semantycznych.
T-W-10Budowa tablic przewidujących Gramatyka LL(1) Architektura parsera LL(1) i sposób jego działania
T-L-8Implementacja generatora kodu dla różnych typów danych.
T-L-9Implementacja wywołań funkcji
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-W-1Definicja translatora, kompilatora, interpretera Fazy kompilacji Struktura przodu kompilatora Struktura tylnej części kompilatora Definicja produkcji Definicja epsilon-produkcji Definicja gramatyki Gramatyki bezkontekstowe Gramatyki niejednocznaczne Definicja języka Drzewa wyprowadzeń
T-L-5Implementacja generatora kodu dla wyrażeń arytmetycznych dla zdefionowanej architektury komputera
T-W-2Łączność operatorów Priorytety operatorów a odpowiednia gramatyka Translacja sterowana składnią Definicja sterowana składnią Atrybuty syntezowane Przechodzenie drzewa w głąb Schemat translacji
T-W-11Redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-13Domknięcie zbioru sytuacji Architektura i algorytm LR parsera Tworzenie tablic parsera SLR(1)
T-W-15Narzędzia YACC i BISON
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
T-W-12Co to jest LR(0) sytuacja Automat LR(0) Gramatyka wzbogacona
T-W-3Zstępująca analiza składniowa Przewidująca analiza składniowa Lewostronna rekurencja Składnia abstrakcyjna i składnia konkretna Translator dla prostych wyrażeń
T-L-1Definiowanie prostej architektury komputera i języka programowania tego komputera.
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-W-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
Metody nauczaniaM-1Wykad informacyjny/konwerrsatoryjny
Sposób ocenyS-2Ocena podsumowująca: Zaliczenie końcowe poprzez sprawdzenie efektów kształcenia: przedstawienie pytań i ocena odpowiedzi
Kryteria ocenyOcenaKryterium oceny
2,0nie zna podstawowych metod projektowania kompilatorów
3,0zna podstawowe metody projektowania kompilatorów oraz rozumie potrzebę projektowania kompilatorów na ogólnym poziomie
3,5zna szczegółowo podstawowe metody projektowania kompilatorów oraz rozumie potrzebę projektowania kompilatorów na ogólnym poziomie
4,0zna szczegółowo podstawowe metody projektowania kompilatorów oraz wie jak zastosować je do projektowania prostych kompilatorów
4,5zna szczegółowo zaawansowane metody projektowania kompilatorów oraz wie jak zastosować je do projektowania kompilatorów
5,0zna szczegółowo zaawansowane metody projektowania kompilatorów oraz wie jak zastosować je do projektowania kompilatorów, oraz potrafi udowodnić i uzasadnić swoją wypowiedż
PoleKODZnaczenie kodu
Zamierzone efekty kształcenia1AW_I_O1/1_W04zna podstawowe metody przetwarzania danych i informacji
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W17zna podstawowe metody gromadzenia i przetwarzania danych i informacji
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_W03ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną obejmującą kluczowe zagadnienia z zakresu studiowanego kierunku studiów
T1A_W07zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_W02zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
InzA_W05zna typowe technologie inżynierskie w zakresie studiowanego kierunku studiów
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-L-8Implementacja generatora kodu dla różnych typów danych.
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-W-6Wyrażenia regularne Definicje regularne Skróty notacyjne w wyrażeniach regularnych Rozpoznanie symboli leksykalnych Diagramy przejść
T-L-1Definiowanie prostej architektury komputera i języka programowania tego komputera.
T-L-4Implementacja zdefiniowanych akcji semantycznych.
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-W-2Łączność operatorów Priorytety operatorów a odpowiednia gramatyka Translacja sterowana składnią Definicja sterowana składnią Atrybuty syntezowane Przechodzenie drzewa w głąb Schemat translacji
T-W-15Narzędzia YACC i BISON
T-W-1Definicja translatora, kompilatora, interpretera Fazy kompilacji Struktura przodu kompilatora Struktura tylnej części kompilatora Definicja produkcji Definicja epsilon-produkcji Definicja gramatyki Gramatyki bezkontekstowe Gramatyki niejednocznaczne Definicja języka Drzewa wyprowadzeń
T-W-5Symbole leksykalne, wzorce, leksemy Leksemy i tokeny Atrybuty symboli leksykalnych Błędy leksykalne Buforowanie w analizie leksykalnej Napisy i języki Operacje na językach
T-W-4Proste metody analizy leksykalnej: usuwanie znaków odstępu I komentarzy, rozpoznanie identyfikatorów i słów kluczowych Prosty analizator leksykalny Implementacja tablicy symboli L-wartości i R-wartości Translacja wyrażeń z zastosowaniem stosu
T-W-3Zstępująca analiza składniowa Przewidująca analiza składniowa Lewostronna rekurencja Składnia abstrakcyjna i składnia konkretna Translator dla prostych wyrażeń
T-W-14Parser LR(1) Parser LALR(1)
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
T-W-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-L-9Implementacja wywołań funkcji
T-L-5Implementacja generatora kodu dla wyrażeń arytmetycznych dla zdefionowanej architektury komputera
T-W-11Redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-12Co to jest LR(0) sytuacja Automat LR(0) Gramatyka wzbogacona
T-L-3Implementacja analizatora składniowego dla zdefioniowanego języka przy pomocy narzędzia BISON.
T-W-13Domknięcie zbioru sytuacji Architektura i algorytm LR parsera Tworzenie tablic parsera SLR(1)
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-W-10Budowa tablic przewidujących Gramatyka LL(1) Architektura parsera LL(1) i sposób jego działania
Metody nauczaniaM-1Wykad informacyjny/konwerrsatoryjny
Sposób ocenyS-2Ocena podsumowująca: Zaliczenie końcowe poprzez sprawdzenie efektów kształcenia: przedstawienie pytań i ocena odpowiedzi
Kryteria ocenyOcenaKryterium oceny
2,0nie zna podstawowych metod projektowania kompilatorów
3,0zna podstawowe metody projektowania kompilatorów oraz rozumie potrzebę projektowaniakompilatorów na ogólnym poziomie
3,5zna szczegółowo podstawowe metody projektowania kompilatorów oraz rozumie potrzebę projektowaniakompilatorów na ogólnym poziomie
4,0zna szczegółowo podstawowe metody projektowania kompilatorów oraz wie jak zastosować je do projektowania prostych kompilatorów
4,5zna szczegółowo zaawansowane metody projektowania kompilatorów oraz wie jak zastosować je do projektowania kompilatorów
5,0zna szczegółowo zaawansowane metody projektowania kompilatorów oraz wie jak zastosować je do projektowania kompilatorów, oraz potrafi udowodnić i uzasadnić swoją wypowiedż
PoleKODZnaczenie kodu
Zamierzone efekty kształcenia1AU_I_O1/1_U01potrafi w zakresie podstawowym projektować, implementować i testować kompilatory i translatory
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U01potrafi w zakresie podstawowym projektować, implementować i testować oprogramowanie
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_U01potrafi pozyskiwać informacje z literatury, baz danych oraz innych właściwie dobranych źródeł, także w języku angielskim lub innym języku obcym uznawanym za język komunikacji międzynarodowej w zakresie studiowanego kierunku studiów; potrafi integrować uzyskane informacje, dokonywać ich interpretacji, a także wyciągać wnioski oraz formułować i uzasadniać opinie
T1A_U02potrafi porozumiewać się przy użyciu różnych technik w środowisku zawodowym oraz w innych środowiskach
T1A_U04potrafi przygotować i przedstawić w języku polskim i języku obcym prezentację ustną, dotyczącą szczegółowych zagadnień z zakresu studiowanego kierunku studiów
T1A_U07potrafi posługiwać się technikami informacyjno-komunikacyjnymi właściwymi do realizacji zadań typowych dla działalności inżynierskiej
T1A_U08potrafi planować i przeprowadzać eksperymenty, w tym pomiary i symulacje komputerowe, interpretować uzyskane wyniki i wyciągać wnioski
T1A_U09potrafi wykorzystać do formułowania i rozwiązywania zadań inżynierskich metody analityczne, symulacyjne oraz eksperymentalne
T1A_U14potrafi dokonać identyfikacji i sformułować specyfikację prostych zadań inżynierskich o charakterze praktycznym, charakterystycznych dla studiowanego kierunku studiów
T1A_U15potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania prostego zadania inżynierskiego o charakterze praktycznym, charakterystycznego dla studiowanego kierunku studiów oraz wybrać i zastosować właściwą metodę i narzędzia
T1A_U16potrafi - zgodnie z zadaną specyfikacją - zaprojektować oraz zrealizować proste urządzenie, obiekt, system lub proces, typowe dla studiowanego kierunku studiów, używając właściwych metod, technik i narzędzi
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_U01potrafi planować i przeprowadzać eksperymenty, w tym pomiary i symulacje komputerowe, interpretować uzyskane wyniki i wyciągać wnioski
InzA_U02potrafi wykorzystać do formułowania i rozwiązywania zadań inżynierskich metody analityczne, symulacyjne oraz eksperymentalne
InzA_U06potrafi dokonać identyfikacji i sformułować specyfikację prostych zadań inżynierskich o charakterze praktycznym, charakterystycznych dla studiowanego kierunku studiów
InzA_U07potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania prostego zadania inżynierskiego o charakterze praktycznym, charakterystycznego dla studiowanego kierunku studiów oraz wybrać i zastosować właściwą metodę i narzędzia
InzA_U08potrafi - zgodnie z zadaną specyfikacją - zaprojektować proste urządzenie, obiekt, system lub proces, typowe dla studiowanego kierunku studiów, używając właściwych metod, technik i narzędzi
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-W-1Definicja translatora, kompilatora, interpretera Fazy kompilacji Struktura przodu kompilatora Struktura tylnej części kompilatora Definicja produkcji Definicja epsilon-produkcji Definicja gramatyki Gramatyki bezkontekstowe Gramatyki niejednocznaczne Definicja języka Drzewa wyprowadzeń
T-W-10Budowa tablic przewidujących Gramatyka LL(1) Architektura parsera LL(1) i sposób jego działania
T-W-6Wyrażenia regularne Definicje regularne Skróty notacyjne w wyrażeniach regularnych Rozpoznanie symboli leksykalnych Diagramy przejść
T-L-4Implementacja zdefiniowanych akcji semantycznych.
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-L-3Implementacja analizatora składniowego dla zdefioniowanego języka przy pomocy narzędzia BISON.
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-L-5Implementacja generatora kodu dla wyrażeń arytmetycznych dla zdefionowanej architektury komputera
T-W-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
T-W-5Symbole leksykalne, wzorce, leksemy Leksemy i tokeny Atrybuty symboli leksykalnych Błędy leksykalne Buforowanie w analizie leksykalnej Napisy i języki Operacje na językach
T-W-15Narzędzia YACC i BISON
T-W-13Domknięcie zbioru sytuacji Architektura i algorytm LR parsera Tworzenie tablic parsera SLR(1)
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
T-W-4Proste metody analizy leksykalnej: usuwanie znaków odstępu I komentarzy, rozpoznanie identyfikatorów i słów kluczowych Prosty analizator leksykalny Implementacja tablicy symboli L-wartości i R-wartości Translacja wyrażeń z zastosowaniem stosu
T-L-8Implementacja generatora kodu dla różnych typów danych.
T-W-2Łączność operatorów Priorytety operatorów a odpowiednia gramatyka Translacja sterowana składnią Definicja sterowana składnią Atrybuty syntezowane Przechodzenie drzewa w głąb Schemat translacji
T-W-11Redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-12Co to jest LR(0) sytuacja Automat LR(0) Gramatyka wzbogacona
T-W-14Parser LR(1) Parser LALR(1)
T-W-3Zstępująca analiza składniowa Przewidująca analiza składniowa Lewostronna rekurencja Składnia abstrakcyjna i składnia konkretna Translator dla prostych wyrażeń
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-L-1Definiowanie prostej architektury komputera i języka programowania tego komputera.
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-L-9Implementacja wywołań funkcji
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: Ocena stopnia wykonywania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0nie potrafi zaimplementować prostego kompilatora przekładającego podstawowe wyrażenia arytmetyczne na kod maszynowy.
3,0potrafi zaimplementować bardzo prosty kompilator przekładający podstawowe wyrażenia arytmetyczne operujące na podstawowych typach danych (całkowite i zmiennoprzecinkowe) na kod maszynowy, jest w stanie zaimplementować obsługę instrukcji warunkowych bez zagnieżdżeń.
3,5potrafi wszystko to co na ocenę 3,0 oraz potrafi zastosować zasady dotyczące implementacji instrukcji warunkowych dla zagnieżdżonych konstrukcji.
4,0potrafi wszystko to co na ocenę 3,5 oraz potrafi przeanalizować powstały kod maszynowy w celu minimalizacji liczby skoków przy złożonych instrukcjach warunkowych. Potrafi również zaimplementować kompilacje konstrukcji pętli i tablic jednowymiarowych.
4,5potrafi syntezować pozyskane umiejętności w kompletny kompilator generujący kod z wykorzystaniem konstrukcji wymaganych naocenę 4.0 oraz dodatkowo zaimplementować tablice wielowymiarowe.
5,0potrafi syntezować kompilator generujący kod z wykorzystaniem konstrukcji wymaganych na ocenę 4.5 oraz zaproponować i wykonać dodatkowe funkcjonalności (np. obsługę funkcji, generowanie kodu dla architektury 64-bitowej)
PoleKODZnaczenie kodu
Zamierzone efekty kształcenia1AU_I_O1/1_U02Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania kompilatorów i translatorów
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U02potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_U02potrafi porozumiewać się przy użyciu różnych technik w środowisku zawodowym oraz w innych środowiskach
T1A_U03potrafi przygotować w języku polskim i języku obcym, uznawanym za podstawowy dla dziedzin nauki i dyscyplin naukowych właściwych dla studiowanego kierunku studiów, dobrze udokumentowane opracowanie problemów z zakresu studiowanego kierunku studiów
T1A_U04potrafi przygotować i przedstawić w języku polskim i języku obcym prezentację ustną, dotyczącą szczegółowych zagadnień z zakresu studiowanego kierunku studiów
T1A_U07potrafi posługiwać się technikami informacyjno-komunikacyjnymi właściwymi do realizacji zadań typowych dla działalności inżynierskiej
T1A_U11ma przygotowanie niezbędne do pracy w środowisku przemysłowym oraz zna zasady bezpieczeństwa związane z tą pracą
T1A_U12potrafi dokonać wstępnej analizy ekonomicznej podejmowanych działań inżynierskich
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_U01potrafi planować i przeprowadzać eksperymenty, w tym pomiary i symulacje komputerowe, interpretować uzyskane wyniki i wyciągać wnioski
InzA_U02potrafi wykorzystać do formułowania i rozwiązywania zadań inżynierskich metody analityczne, symulacyjne oraz eksperymentalne
InzA_U03potrafi - przy formułowaniu i rozwiązywaniu zadań inżynierskich - dostrzegać ich aspekty systemowe i pozatechniczne
InzA_U05potrafi dokonać krytycznej analizy sposobu funkcjonowania i ocenić - zwłaszcza w powiązaniu ze studiowanym kierunkiem studiów - istniejące rozwiązania techniczne, w szczególności urządzenia, obiekty, systemy, procesy, usługi
InzA_U06potrafi dokonać identyfikacji i sformułować specyfikację prostych zadań inżynierskich o charakterze praktycznym, charakterystycznych dla studiowanego kierunku studiów
InzA_U07potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania prostego zadania inżynierskiego o charakterze praktycznym, charakterystycznego dla studiowanego kierunku studiów oraz wybrać i zastosować właściwą metodę i narzędzia
InzA_U08potrafi - zgodnie z zadaną specyfikacją - zaprojektować proste urządzenie, obiekt, system lub proces, typowe dla studiowanego kierunku studiów, używając właściwych metod, technik i narzędzi
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-W-6Wyrażenia regularne Definicje regularne Skróty notacyjne w wyrażeniach regularnych Rozpoznanie symboli leksykalnych Diagramy przejść
T-W-12Co to jest LR(0) sytuacja Automat LR(0) Gramatyka wzbogacona
T-W-4Proste metody analizy leksykalnej: usuwanie znaków odstępu I komentarzy, rozpoznanie identyfikatorów i słów kluczowych Prosty analizator leksykalny Implementacja tablicy symboli L-wartości i R-wartości Translacja wyrażeń z zastosowaniem stosu
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-W-5Symbole leksykalne, wzorce, leksemy Leksemy i tokeny Atrybuty symboli leksykalnych Błędy leksykalne Buforowanie w analizie leksykalnej Napisy i języki Operacje na językach
T-W-10Budowa tablic przewidujących Gramatyka LL(1) Architektura parsera LL(1) i sposób jego działania
T-W-3Zstępująca analiza składniowa Przewidująca analiza składniowa Lewostronna rekurencja Składnia abstrakcyjna i składnia konkretna Translator dla prostych wyrażeń
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-W-1Definicja translatora, kompilatora, interpretera Fazy kompilacji Struktura przodu kompilatora Struktura tylnej części kompilatora Definicja produkcji Definicja epsilon-produkcji Definicja gramatyki Gramatyki bezkontekstowe Gramatyki niejednocznaczne Definicja języka Drzewa wyprowadzeń
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-L-5Implementacja generatora kodu dla wyrażeń arytmetycznych dla zdefionowanej architektury komputera
T-W-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-L-4Implementacja zdefiniowanych akcji semantycznych.
T-W-2Łączność operatorów Priorytety operatorów a odpowiednia gramatyka Translacja sterowana składnią Definicja sterowana składnią Atrybuty syntezowane Przechodzenie drzewa w głąb Schemat translacji
T-W-11Redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-14Parser LR(1) Parser LALR(1)
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
T-L-8Implementacja generatora kodu dla różnych typów danych.
T-L-3Implementacja analizatora składniowego dla zdefioniowanego języka przy pomocy narzędzia BISON.
T-L-1Definiowanie prostej architektury komputera i języka programowania tego komputera.
T-L-9Implementacja wywołań funkcji
T-W-13Domknięcie zbioru sytuacji Architektura i algorytm LR parsera Tworzenie tablic parsera SLR(1)
T-W-15Narzędzia YACC i BISON
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: Ocena stopnia wykonywania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0nie jest w stanie uczestniczyć w pracach zespołu przygotowującym projekt języka i kompilatora
3,0potrafi uczestniczyć w zespole przygotowującym projekt języka i kompilatora
3,5potrafi aktywnie uczestniczyć w zespole przygotowującym projekt języka i kompilatora
4,0potrafi aktywnie uczestniczyć w zespole przygotowującym projekt języka i kompilatora oraz analizować proponowane rozwiązania
4,5wymagania na ocene 4.0 oraz potrafi dodawać istotne propozycje w realizowanym projekcie
5,0wymagania na ocene 4.5 oraz potrafi wyjaśnić innym studentom w zespole zagadnienia dotyczące budowy kompilatora
PoleKODZnaczenie kodu
Zamierzone efekty kształcenia1AU_I_O1/1_U03Potrafi posługiwać się dokumentacją techniczną do narzędzi wsperające wytwarzanie kompilatorów
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U05potrafi tworzyć i posługiwać się dokumentacją techniczną
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_U01potrafi pozyskiwać informacje z literatury, baz danych oraz innych właściwie dobranych źródeł, także w języku angielskim lub innym języku obcym uznawanym za język komunikacji międzynarodowej w zakresie studiowanego kierunku studiów; potrafi integrować uzyskane informacje, dokonywać ich interpretacji, a także wyciągać wnioski oraz formułować i uzasadniać opinie
T1A_U02potrafi porozumiewać się przy użyciu różnych technik w środowisku zawodowym oraz w innych środowiskach
T1A_U06ma umiejętności językowe w zakresie dziedzin nauki i dyscyplin naukowych, właściwych dla studiowanego kierunku studiów, zgodne z wymaganiami określonymi dla poziomu B2 Europejskiego Systemu Opisu Kształcenia Językowego
T1A_U07potrafi posługiwać się technikami informacyjno-komunikacyjnymi właściwymi do realizacji zadań typowych dla działalności inżynierskiej
T1A_U13potrafi dokonać krytycznej analizy sposobu funkcjonowania i ocenić - zwłaszcza w powiązaniu ze studiowanym kierunkiem studiów - istniejące rozwiązania techniczne, w szczególności urządzenia, obiekty, systemy, procesy, usługi
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_U05potrafi dokonać krytycznej analizy sposobu funkcjonowania i ocenić - zwłaszcza w powiązaniu ze studiowanym kierunkiem studiów - istniejące rozwiązania techniczne, w szczególności urządzenia, obiekty, systemy, procesy, usługi
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-W-1Definicja translatora, kompilatora, interpretera Fazy kompilacji Struktura przodu kompilatora Struktura tylnej części kompilatora Definicja produkcji Definicja epsilon-produkcji Definicja gramatyki Gramatyki bezkontekstowe Gramatyki niejednocznaczne Definicja języka Drzewa wyprowadzeń
T-W-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
T-L-9Implementacja wywołań funkcji
T-W-6Wyrażenia regularne Definicje regularne Skróty notacyjne w wyrażeniach regularnych Rozpoznanie symboli leksykalnych Diagramy przejść
T-W-10Budowa tablic przewidujących Gramatyka LL(1) Architektura parsera LL(1) i sposób jego działania
T-W-5Symbole leksykalne, wzorce, leksemy Leksemy i tokeny Atrybuty symboli leksykalnych Błędy leksykalne Buforowanie w analizie leksykalnej Napisy i języki Operacje na językach
T-L-8Implementacja generatora kodu dla różnych typów danych.
T-L-1Definiowanie prostej architektury komputera i języka programowania tego komputera.
T-W-3Zstępująca analiza składniowa Przewidująca analiza składniowa Lewostronna rekurencja Składnia abstrakcyjna i składnia konkretna Translator dla prostych wyrażeń
T-W-2Łączność operatorów Priorytety operatorów a odpowiednia gramatyka Translacja sterowana składnią Definicja sterowana składnią Atrybuty syntezowane Przechodzenie drzewa w głąb Schemat translacji
T-W-12Co to jest LR(0) sytuacja Automat LR(0) Gramatyka wzbogacona
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-W-11Redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-15Narzędzia YACC i BISON
T-L-3Implementacja analizatora składniowego dla zdefioniowanego języka przy pomocy narzędzia BISON.
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-W-13Domknięcie zbioru sytuacji Architektura i algorytm LR parsera Tworzenie tablic parsera SLR(1)
T-W-14Parser LR(1) Parser LALR(1)
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-L-5Implementacja generatora kodu dla wyrażeń arytmetycznych dla zdefionowanej architektury komputera
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-W-4Proste metody analizy leksykalnej: usuwanie znaków odstępu I komentarzy, rozpoznanie identyfikatorów i słów kluczowych Prosty analizator leksykalny Implementacja tablicy symboli L-wartości i R-wartości Translacja wyrażeń z zastosowaniem stosu
T-L-4Implementacja zdefiniowanych akcji semantycznych.
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: Ocena stopnia wykonywania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0nie potrafi zastosować dostępnej dokumentacji technicznej do implementacji kompilatora
3,0potrafi przy pomocy prowadzącego i na podstawie dostępnej dokumentacji zaimplementować podstawowe funkcje kompilatora przy wykorzystaniu narzędzi LEX /FLEX oraz YACC/BISON
3,5potrafi przy pomocy prowadzącego i na podstawie dostępnej dokumentacji zaimplementować rozbudowane funkcje kompilatora przy wykorzystaniu narzędzi LEX/FLEX oraz YACC/BISON
4,0potrafi samodzielnie na podstawie dostępnej dokumentacji zaimplementować podstawowe funkcje kompilatora przy wykorzystaniu narzędzi LEX /FLEX oraz YACC/BISON
4,5potrafi samodzielnie na podstawie dostępnej dokumentacji zaimplementować rozbudowane funkcje kompilatora przy wykorzystaniu narzędzi LEX /FLEX oraz YACC/BISON
5,0potrafi samodzielnie na podstawie dostępnej dokumentacji zaimplementować rozbudowane funkcje kompilatora przy wykorzystaniu narzędzi LEX /FLEX oraz YACC/BISON oraz potrafi wyjaśnić innym studentom w zespole zagadnienia dotyczące budowy kompilatora
PoleKODZnaczenie kodu
Zamierzone efekty kształcenia1AU_I_O1/1_U04ma umiejętność opracowania lub wyboru algorytmu i struktur danych do tworzenia kompilatorów
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U19ma umiejętność wyboru algorytmu i struktur danych do rozwiązania określonego zadania inżynierskiego
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_U13potrafi dokonać krytycznej analizy sposobu funkcjonowania i ocenić - zwłaszcza w powiązaniu ze studiowanym kierunkiem studiów - istniejące rozwiązania techniczne, w szczególności urządzenia, obiekty, systemy, procesy, usługi
T1A_U15potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania prostego zadania inżynierskiego o charakterze praktycznym, charakterystycznego dla studiowanego kierunku studiów oraz wybrać i zastosować właściwą metodę i narzędzia
T1A_U16potrafi - zgodnie z zadaną specyfikacją - zaprojektować oraz zrealizować proste urządzenie, obiekt, system lub proces, typowe dla studiowanego kierunku studiów, używając właściwych metod, technik i narzędzi
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_U05potrafi dokonać krytycznej analizy sposobu funkcjonowania i ocenić - zwłaszcza w powiązaniu ze studiowanym kierunkiem studiów - istniejące rozwiązania techniczne, w szczególności urządzenia, obiekty, systemy, procesy, usługi
InzA_U07potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania prostego zadania inżynierskiego o charakterze praktycznym, charakterystycznego dla studiowanego kierunku studiów oraz wybrać i zastosować właściwą metodę i narzędzia
InzA_U08potrafi - zgodnie z zadaną specyfikacją - zaprojektować proste urządzenie, obiekt, system lub proces, typowe dla studiowanego kierunku studiów, używając właściwych metod, technik i narzędzi
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-W-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
T-W-1Definicja translatora, kompilatora, interpretera Fazy kompilacji Struktura przodu kompilatora Struktura tylnej części kompilatora Definicja produkcji Definicja epsilon-produkcji Definicja gramatyki Gramatyki bezkontekstowe Gramatyki niejednocznaczne Definicja języka Drzewa wyprowadzeń
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
T-W-15Narzędzia YACC i BISON
T-L-9Implementacja wywołań funkcji
T-W-4Proste metody analizy leksykalnej: usuwanie znaków odstępu I komentarzy, rozpoznanie identyfikatorów i słów kluczowych Prosty analizator leksykalny Implementacja tablicy symboli L-wartości i R-wartości Translacja wyrażeń z zastosowaniem stosu
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-W-14Parser LR(1) Parser LALR(1)
T-L-3Implementacja analizatora składniowego dla zdefioniowanego języka przy pomocy narzędzia BISON.
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-W-6Wyrażenia regularne Definicje regularne Skróty notacyjne w wyrażeniach regularnych Rozpoznanie symboli leksykalnych Diagramy przejść
T-W-3Zstępująca analiza składniowa Przewidująca analiza składniowa Lewostronna rekurencja Składnia abstrakcyjna i składnia konkretna Translator dla prostych wyrażeń
T-L-5Implementacja generatora kodu dla wyrażeń arytmetycznych dla zdefionowanej architektury komputera
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-W-5Symbole leksykalne, wzorce, leksemy Leksemy i tokeny Atrybuty symboli leksykalnych Błędy leksykalne Buforowanie w analizie leksykalnej Napisy i języki Operacje na językach
T-W-10Budowa tablic przewidujących Gramatyka LL(1) Architektura parsera LL(1) i sposób jego działania
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-W-12Co to jest LR(0) sytuacja Automat LR(0) Gramatyka wzbogacona
T-W-13Domknięcie zbioru sytuacji Architektura i algorytm LR parsera Tworzenie tablic parsera SLR(1)
T-L-1Definiowanie prostej architektury komputera i języka programowania tego komputera.
T-L-4Implementacja zdefiniowanych akcji semantycznych.
T-L-8Implementacja generatora kodu dla różnych typów danych.
T-W-11Redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-2Łączność operatorów Priorytety operatorów a odpowiednia gramatyka Translacja sterowana składnią Definicja sterowana składnią Atrybuty syntezowane Przechodzenie drzewa w głąb Schemat translacji
Metody nauczaniaM-1Wykad informacyjny/konwerrsatoryjny
Sposób ocenyS-1Ocena formująca: Ocena stopnia wykonywania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0nie potrafi zastosować podstawowych algorytmów budowy kompilatorów
3,0potrafi zastosować lub zmodyfikować podstawowe algorytmy przedstawione na wykładach do budowy kompilatora pozwalającego na implementacje wyrażeń arytmetycznych
3,5potrafi zastosować lub zmodyfikować podstawowe algorytmy przedstawione na wykładach do budowy kompilatora pozwalającego na implementacje wyrażeń arytmetycznych oraz tablic jednowymiarowych
4,0potrafi zastosować lub zmodyfikować podstawowe algorytmy przedstawione na wykładach do budowy kompilatora pozwalającego na implementacje wyrażeń arytmetycznych, tablic jednowymiarowych
4,5potrafi zastosować lub zmodyfikować podstawowe algorytmy przedstawione na wykładach do budowy kompilatora pozwalającego na implementacje wyrażeń arytmetycznych, tablic jednowymiarowych oraz instrukcji warunkowych
5,0potrafi zastosować lub zmodyfikować podstawowe algorytmy przedstawione na wykładach do budowy kompilatora pozwalającego na implementacje wyrażeń arytmetycznych, tablic wielowymiarowych oraz instrukcji warunkowych
PoleKODZnaczenie kodu
Zamierzone efekty kształcenia1AK_I_O1/1_K01świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie metod i narzędzi do tworzenia kompilatorów
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_K01świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_K01rozumie potrzebę uczenia się przez całe życie; potrafi inspirować i organizować proces uczenia się innych osób
T1A_K07ma świadomość roli społecznej absolwenta uczelni technicznej, a zwłaszcza rozumie potrzebę formułowania i przekazywania społeczeństwu, w szczególności poprzez środki masowego przekazu, informacji i opinii dotyczących osiągnięć techniki i innych aspektów działalności inżynierskiej; podejmuje starania, aby przekazać takie informacje i opinie w sposób powszechnie zrozumiały
Cel przedmiotuC-2Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie tworzenia kompilatorów
Treści programoweT-L-8Implementacja generatora kodu dla różnych typów danych.
T-W-13Domknięcie zbioru sytuacji Architektura i algorytm LR parsera Tworzenie tablic parsera SLR(1)
T-L-5Implementacja generatora kodu dla wyrażeń arytmetycznych dla zdefionowanej architektury komputera
T-W-10Budowa tablic przewidujących Gramatyka LL(1) Architektura parsera LL(1) i sposób jego działania
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-W-4Proste metody analizy leksykalnej: usuwanie znaków odstępu I komentarzy, rozpoznanie identyfikatorów i słów kluczowych Prosty analizator leksykalny Implementacja tablicy symboli L-wartości i R-wartości Translacja wyrażeń z zastosowaniem stosu
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
T-W-3Zstępująca analiza składniowa Przewidująca analiza składniowa Lewostronna rekurencja Składnia abstrakcyjna i składnia konkretna Translator dla prostych wyrażeń
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-W-11Redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-L-4Implementacja zdefiniowanych akcji semantycznych.
T-W-2Łączność operatorów Priorytety operatorów a odpowiednia gramatyka Translacja sterowana składnią Definicja sterowana składnią Atrybuty syntezowane Przechodzenie drzewa w głąb Schemat translacji
T-W-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
T-L-9Implementacja wywołań funkcji
T-W-14Parser LR(1) Parser LALR(1)
T-W-15Narzędzia YACC i BISON
T-W-6Wyrażenia regularne Definicje regularne Skróty notacyjne w wyrażeniach regularnych Rozpoznanie symboli leksykalnych Diagramy przejść
T-W-1Definicja translatora, kompilatora, interpretera Fazy kompilacji Struktura przodu kompilatora Struktura tylnej części kompilatora Definicja produkcji Definicja epsilon-produkcji Definicja gramatyki Gramatyki bezkontekstowe Gramatyki niejednocznaczne Definicja języka Drzewa wyprowadzeń
T-W-12Co to jest LR(0) sytuacja Automat LR(0) Gramatyka wzbogacona
T-L-3Implementacja analizatora składniowego dla zdefioniowanego języka przy pomocy narzędzia BISON.
T-W-5Symbole leksykalne, wzorce, leksemy Leksemy i tokeny Atrybuty symboli leksykalnych Błędy leksykalne Buforowanie w analizie leksykalnej Napisy i języki Operacje na językach
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: Ocena stopnia wykonywania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0nie potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów
3,0Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 3,0
3,5Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 3,5
4,0Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 4,0
4,5Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 4,5
5,0Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania w oparciu o dokształcenie z oceną 5,0
PoleKODZnaczenie kodu
Zamierzone efekty kształcenia1AK_I_O1/1_K02ma świadomość odpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia kompilatorów
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_K03ma świadomość odpowiedzialności za wspólnie realizowane zadania
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_K02ma świadomość ważności i zrozumienie pozatechnicznych aspektów i skutków działalności inżynierskiej, w tym jej wpływu na środowisko, i związanej z tym odpowiedzialności za podejmowane decyzje
T1A_K03potrafi współdziałać i pracować w grupie, przyjmując w niej różne role
T1A_K04potrafi odpowiednio określić priorytety służące realizacji określonego przez siebie lub innych zadania
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_K01ma świadomość ważności i rozumie pozatechniczne aspekty i skutki działalności inżynierskiej, w tym jej wpływu na środowisko, i związanej z tym odpowiedzialności za podejmowane decyzje
Cel przedmiotuC-2Ukształtowanie świadomego rozumowania dokształcania się i odpowiedzialności za wspólne realizowanie projektów w zakresie tworzenia kompilatorów
Treści programoweT-W-1Definicja translatora, kompilatora, interpretera Fazy kompilacji Struktura przodu kompilatora Struktura tylnej części kompilatora Definicja produkcji Definicja epsilon-produkcji Definicja gramatyki Gramatyki bezkontekstowe Gramatyki niejednocznaczne Definicja języka Drzewa wyprowadzeń
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
T-W-15Narzędzia YACC i BISON
T-W-12Co to jest LR(0) sytuacja Automat LR(0) Gramatyka wzbogacona
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-L-1Definiowanie prostej architektury komputera i języka programowania tego komputera.
T-W-3Zstępująca analiza składniowa Przewidująca analiza składniowa Lewostronna rekurencja Składnia abstrakcyjna i składnia konkretna Translator dla prostych wyrażeń
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-W-6Wyrażenia regularne Definicje regularne Skróty notacyjne w wyrażeniach regularnych Rozpoznanie symboli leksykalnych Diagramy przejść
T-W-5Symbole leksykalne, wzorce, leksemy Leksemy i tokeny Atrybuty symboli leksykalnych Błędy leksykalne Buforowanie w analizie leksykalnej Napisy i języki Operacje na językach
T-W-10Budowa tablic przewidujących Gramatyka LL(1) Architektura parsera LL(1) i sposób jego działania
T-W-13Domknięcie zbioru sytuacji Architektura i algorytm LR parsera Tworzenie tablic parsera SLR(1)
T-W-11Redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-L-4Implementacja zdefiniowanych akcji semantycznych.
T-W-4Proste metody analizy leksykalnej: usuwanie znaków odstępu I komentarzy, rozpoznanie identyfikatorów i słów kluczowych Prosty analizator leksykalny Implementacja tablicy symboli L-wartości i R-wartości Translacja wyrażeń z zastosowaniem stosu
T-W-2Łączność operatorów Priorytety operatorów a odpowiednia gramatyka Translacja sterowana składnią Definicja sterowana składnią Atrybuty syntezowane Przechodzenie drzewa w głąb Schemat translacji
T-L-5Implementacja generatora kodu dla wyrażeń arytmetycznych dla zdefionowanej architektury komputera
T-L-9Implementacja wywołań funkcji
T-W-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
T-L-8Implementacja generatora kodu dla różnych typów danych.
T-W-14Parser LR(1) Parser LALR(1)
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-L-3Implementacja analizatora składniowego dla zdefioniowanego języka przy pomocy narzędzia BISON.
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
Metody nauczaniaM-2Ćwiczenia laboratoryjne
Sposób ocenyS-1Ocena formująca: Ocena stopnia wykonywania zadań praktycznych pod koniec każdych laboratoriów
Kryteria ocenyOcenaKryterium oceny
2,0Nie potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów
3,0Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania z oceną 3,0
3,5Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania z oceną 3,5
4,0Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania z oceną 4,0
4,5Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania z oceną 4,5
5,0Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych dotyczących projektowania kompilatorów oraz zrealizował swoją część zadania z oceną 5,0