Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (N1)

Sylabus przedmiotu Metody kompilacji:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia niestacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów nauki techniczne, studia inżynierskie
Profil ogólnoakademicki
Moduł
Przedmiot Metody kompilacji
Specjalność systemy komputerowe i oprogramowanie
Jednostka prowadząca Katedra Inżynierii Oprogramowania
Nauczyciel odpowiedzialny Piotr Błaszyński <Piotr.Blaszynski@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 8 Grupa obieralna 1

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
laboratoriaL7 16 2,10,50zaliczenie
wykładyW7 16 1,90,50egzamin

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 FLEX2
T-L-3Implementacja analizatora składniowego dla zdefiniowanego języka przy pomocy narzędzia BISON.2
T-L-4Implementacja zdefiniowanych akcji semantycznych.2
T-L-5Implementacja generatora kodu dla wyrażeń arytmetycznych dla zdefionowanej architektury komputera2
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.2
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
16
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ń1
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 translacji1
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ń1
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 stosu1
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ęzykach1
T-W-6Wyrażenia regularne Definicje regularne Skróty notacyjne w wyrażeniach regularnych Rozpoznanie symboli leksykalnych Diagramy przejść1
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne1
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 FOLLOW1
T-W-10Budowa tablic przewidujących Gramatyka LL(1) Architektura parsera LL(1) i sposób jego działania1
T-W-11Na czym polega redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego1
T-W-12Co to jest LR(0) sytuacja Automat LR(0) Gramatyka wzbogacona1
T-W-13Domknięcie zbioru sytuacji Architektura i algorytm LR parsera Tworzenie tablic parsera SLR(1)1
T-W-14Parser LR(1) Parser LALR(1)1
T-W-15Narzędzie YACC i BISON1
16

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

KODForma aktywnościGodziny
laboratoria
A-L-1udział w laboratoriach16
A-L-2przygotowanie do laboratoriów48
64
wykłady
A-W-1Udział w wykładach16
A-W-2Przygotowanie do egzaminu40
56

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
I_1A_O1/01_W01
ma wiedzę w zakresie algorytmów projektowania kompilatorów
I_1A_W05C-1T-L-1, T-L-5, T-L-3, T-L-9, T-L-2, T-L-6, T-L-7, T-L-4, T-L-8, T-W-2, T-W-14, T-W-10, T-W-12, T-W-13, T-W-1, T-W-3, T-W-15, T-W-8, T-W-11, T-W-7, T-W-5, T-W-9, T-W-6, T-W-4M-1S-2
I_1A_O1/01_W02
zna narzędzia do tworzenia kompilatorów
I_1A_W06C-1T-L-1, T-L-5, T-L-3, T-L-9, T-L-2, T-L-6, T-L-7, T-L-4, T-L-8, T-W-2, T-W-14, T-W-10, T-W-12, T-W-13, T-W-1, T-W-3, T-W-15, T-W-8, T-W-11, T-W-7, T-W-5, T-W-9, T-W-6, T-W-4M-1S-2
I_1A_O1/01_W03
zna metody i techniki służące do komunikacji człowieka z komputerem poprzez tworzenie kompilatorów i translatorów
I_1A_W14C-1T-L-1, T-L-5, T-L-3, T-L-9, T-L-2, T-L-6, T-L-7, T-L-4, T-L-8, T-W-2, T-W-14, T-W-10, T-W-12, T-W-13, T-W-1, T-W-3, T-W-15, T-W-8, T-W-11, T-W-7, T-W-5, T-W-9, T-W-6, T-W-4M-1S-2
I_1A_O1/01_W04
zna podstawowe metody przetwarzania danych i informacji
I_1A_W17C-1T-L-1, T-L-5, T-L-3, T-L-9, T-L-2, T-L-6, T-L-7, T-L-4, T-L-8, T-W-2, T-W-14, T-W-10, T-W-12, T-W-13, T-W-1, T-W-3, T-W-15, T-W-8, T-W-11, T-W-7, T-W-5, T-W-9, T-W-6, T-W-4M-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
I_1A_O1/01_U01
potrafi w zakresie podstawowym projektować, implementować i testować kompilatory i translatory
I_1A_U01C-1T-L-1, T-L-5, T-L-3, T-L-9, T-L-2, T-L-6, T-L-7, T-L-4, T-L-8, T-W-2, T-W-14, T-W-10, T-W-12, T-W-13, T-W-1, T-W-3, T-W-15, T-W-8, T-W-11, T-W-7, T-W-5, T-W-9, T-W-6, T-W-4M-2S-1
I_1A_O1/01_U02
Potrafi aktywnie uczestniczyć w pracach projektowych zespołowych i indywidualnych dotyczących wytwarzania kompilatorów i translatorów
I_1A_U02C-1T-L-1, T-L-5, T-L-3, T-L-9, T-L-2, T-L-6, T-L-7, T-L-4, T-L-8, T-W-2, T-W-14, T-W-10, T-W-12, T-W-13, T-W-1, T-W-3, T-W-15, T-W-8, T-W-11, T-W-7, T-W-5, T-W-9, T-W-6, T-W-4M-2S-1
I_1A_O1/01_U03
Potrafi posługiwać się dokumentacją techniczną do narzędzi wsperające wytwarzanie kompilatorów
I_1A_U05C-1T-L-1, T-L-5, T-L-3, T-L-9, T-L-2, T-L-6, T-L-7, T-L-4, T-L-8, T-W-2, T-W-14, T-W-10, T-W-12, T-W-13, T-W-1, T-W-3, T-W-15, T-W-8, T-W-11, T-W-7, T-W-5, T-W-9, T-W-6, T-W-4M-2S-1
I_1A_O1/01_U04
ma umiejętność opracowania lub wyboru algorytmu i struktur danych do tworzenia kompilatorów
I_1A_U19C-1T-L-1, T-L-5, T-L-3, T-L-9, T-L-2, T-L-6, T-L-7, T-L-4, T-L-8, T-W-2, T-W-14, T-W-10, T-W-12, T-W-13, T-W-1, T-W-3, T-W-15, T-W-8, T-W-11, T-W-7, T-W-5, T-W-9, T-W-6, T-W-4M-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
I_1A_O1/01_K01
świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie metod i narzędzi do tworzenia kompilatorów
I_1A_K01C-2T-L-5, T-L-3, T-L-9, T-L-2, T-L-6, T-L-7, T-L-4, T-L-8, T-W-2, T-W-14, T-W-10, T-W-12, T-W-13, T-W-1, T-W-3, T-W-15, T-W-8, T-W-11, T-W-7, T-W-5, T-W-9, T-W-6, T-W-4M-2S-1
I_1A_O1/01_K02
ma świadomość odpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia kompilatorów
I_1A_K03C-2T-L-1, T-L-5, T-L-3, T-L-9, T-L-2, T-L-6, T-L-7, T-L-4, T-L-8, T-W-2, T-W-14, T-W-10, T-W-12, T-W-13, T-W-1, T-W-3, T-W-15, T-W-8, T-W-11, T-W-7, T-W-5, T-W-9, T-W-6, T-W-4M-2S-1

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium oceny
I_1A_O1/01_W01
ma wiedzę w zakresie algorytmów projektowania kompilatoró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ż
I_1A_O1/01_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 projektowania analizatorów leksykalnych i składniowych
I_1A_O1/01_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ż
I_1A_O1/01_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ę 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ż

Kryterium oceny - umiejętności

Efekt kształceniaOcenaKryterium oceny
I_1A_O1/01_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ć kompilację konstrukcji pętli i tablic jednowymiarowych.
4,5potrafi syntezować pozyskane umiejętności w kompletny kompilator generujący kod z wykorzystaniem konstrukcji wymaganych na niższe oceny oraz dodatkowo tablic wielowymiarowych.
5,0potrafi ocenić kompilator generujący kod z wykorzystaniem konstrukcji wymaganych na niższe oceny oraz zaproponować i wykonać dodatkowe funkcjonalności (np. obsługę funkcji, generowanie kodu dla architektury 64-bitowej)
I_1A_O1/01_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
I_1A_O1/01_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 bison i flex.
3,5potrafi samodzielnie stosować udostępnioną dokumentacje techniczną do implementacji kompilator
4,0potrafi wszystko na ocenę 3,5, potrafi również analizować dostępną dokumentacje techniczną jak również poszukiwać i skutecznie użyć dodatkowych informacji (np. przykładowa składnia analizatora składniowego)
4,5potrafi wszystko na ocenę 4,0, proponuje również nowe rozwiązania (np. alternatywny sposób zapisu wyrażeń regularnych w narzędziu flex, składnia wykraczająca poza przykłady z dokumentacji narzędzia bison) rozwiązań prezentowanych w dokumentacji
5,0potrafi wszystko na ocenę 4,5, zapoznał się z przynajmniej jednym narzędziem do budowy kompilatorów (np. ANTLR, Roslyn) i potrafi z nim porównać stosowane na zajęciach narzędzia (flex i bison)
I_1A_O1/01_U04
ma umiejętność opracowania lub wyboru algorytmu i struktur danych do tworzenia kompilatorów
2,0nie rozumie i nie potrafi zastosować podstawowych algorytmów budowy kompilatorów
3,0rozumie i potrafi zastosować podstawowe algorytmy przedstawione w ramach zajęć
3,5potrafi wszystko na ocenę 3,0 oraz jest w stanie zmodyfikować implementacje prostych algorytmów
4,0potrafi wszystko na ocenę 3,5 oraz jest w stanie zmodyfikować implementacje złożonych algorytmów
4,5potrafi wszystko na ocenę 4,0 oraz potrafi wybrać efektywną implementacje używanych algorytmów budowy kompilatora (np. tablica symboli, obliczanie wyrażeń arytmetycznych, instrukcje skoku, indeksowanie tablic wielowymiarowych).
5,0potrafi wszystko na ocenę 4,5 oraz jest w stanie uogólnić znane algorytmy oraz przedstawić ocenę złożoności uzyskanego rozwiązania.

Kryterium oceny - inne kompetencje społeczne i personalne

Efekt kształceniaOcenaKryterium oceny
I_1A_O1/01_K01
świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie metod i narzędzi do tworzenia kompilatorów
2,0nie rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie metod i narzędzi do tworzenia kompilatorów
3,0rozumie potrzebę dokształcania i dzielenia się wiedzą w zakresie metod i narzędzi do tworzenia kompilatorów
3,5jest w stanie zaprezentować w pełni zaimplementowane rozwiązanie
4,0jest w stanie zaprezentować w pełni i przedyskutować z prowadzącym zaimplementowane rozwiązanie
4,5na bazie kompetencji wymaganych na niższe oceny jest w stanie podzielić się wiedzą w usystematyzowany sposób z grupą
5,0na bazie kompetencji wymaganych na niższe oceny jest w stanie przygotować i zaprezentować własne propozycje w zakresie metod i narzędzi do tworzenia kompilatorów
I_1A_O1/01_K02
ma świadomość odpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia kompilatorów
2,0nie ma świadomości odpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia kompilatorów
3,0ma świadomość odpowiedzialnośći za wspólnie realizowane zadania i potrafi uczestniczyć w zespole przygotowującym projekt języka i kompilatora
3,5ma świadomość odpowiedzialnośći za wspólnie realizowane zadania i potrafi aktywnie uczestniczyć w zespole przygotowującym projekt języka i kompilatora
4,0ma świadomość odpowiedzialnośći za wspólnie realizowane zadania i potrafi analizować proponowane rozwiązania i dodawać istotne propozycje w trakcie aktywnego uczestnictwa w zespole przygotowującym projekt języka i kompilatora
4,5ma świadomość odpowiedzialnośći za wspólnie realizowane zadania i potrafi ocenić przydatność proponowanych rozwiązań oraz wyjaśnić innym studentom zagadnienia dotyczące budowy kompilatora
5,0ma świadomość odpowiedzialnośći za wspólnie realizowane zadania i potrafi podjąć się przewodnictwa w grupie

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 FLEX2
T-L-3Implementacja analizatora składniowego dla zdefiniowanego języka przy pomocy narzędzia BISON.2
T-L-4Implementacja zdefiniowanych akcji semantycznych.2
T-L-5Implementacja generatora kodu dla wyrażeń arytmetycznych dla zdefionowanej architektury komputera2
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.2
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
16

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ń1
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 translacji1
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ń1
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 stosu1
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ęzykach1
T-W-6Wyrażenia regularne Definicje regularne Skróty notacyjne w wyrażeniach regularnych Rozpoznanie symboli leksykalnych Diagramy przejść1
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne1
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 FOLLOW1
T-W-10Budowa tablic przewidujących Gramatyka LL(1) Architektura parsera LL(1) i sposób jego działania1
T-W-11Na czym polega redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego1
T-W-12Co to jest LR(0) sytuacja Automat LR(0) Gramatyka wzbogacona1
T-W-13Domknięcie zbioru sytuacji Architektura i algorytm LR parsera Tworzenie tablic parsera SLR(1)1
T-W-14Parser LR(1) Parser LALR(1)1
T-W-15Narzędzie YACC i BISON1
16

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1udział w laboratoriach16
A-L-2przygotowanie do laboratoriów48
64
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Udział w wykładach16
A-W-2Przygotowanie do egzaminu40
56
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O1/01_W01ma wiedzę w zakresie algorytmów projektowania kompilatorów
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W05ma wiedzę w zakresie algorytmizacji i zasad tworzenia struktur danych
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-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-3Implementacja analizatora składniowego dla zdefiniowanego języka przy pomocy narzędzia BISON.
T-L-9Implementacja wywołań funkcji
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-L-4Implementacja zdefiniowanych akcji semantycznych.
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-14Parser LR(1) Parser LALR(1)
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-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-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-15Narzędzie YACC i BISON
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-W-11Na czym polega redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
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-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
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
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łceniaI_1A_O1/01_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
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-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-3Implementacja analizatora składniowego dla zdefiniowanego języka przy pomocy narzędzia BISON.
T-L-9Implementacja wywołań funkcji
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-L-4Implementacja zdefiniowanych akcji semantycznych.
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-14Parser LR(1) Parser LALR(1)
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-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-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-15Narzędzie YACC i BISON
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-W-11Na czym polega redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
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-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
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
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 projektowania analizatorów leksykalnych i składniowych
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O1/01_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
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-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-3Implementacja analizatora składniowego dla zdefiniowanego języka przy pomocy narzędzia BISON.
T-L-9Implementacja wywołań funkcji
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-L-4Implementacja zdefiniowanych akcji semantycznych.
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-14Parser LR(1) Parser LALR(1)
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-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-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-15Narzędzie YACC i BISON
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-W-11Na czym polega redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
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-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
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
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łceniaI_1A_O1/01_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
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-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-3Implementacja analizatora składniowego dla zdefiniowanego języka przy pomocy narzędzia BISON.
T-L-9Implementacja wywołań funkcji
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-L-4Implementacja zdefiniowanych akcji semantycznych.
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-14Parser LR(1) Parser LALR(1)
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-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-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-15Narzędzie YACC i BISON
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-W-11Na czym polega redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
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-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
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
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łceniaI_1A_O1/01_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
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-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-3Implementacja analizatora składniowego dla zdefiniowanego języka przy pomocy narzędzia BISON.
T-L-9Implementacja wywołań funkcji
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-L-4Implementacja zdefiniowanych akcji semantycznych.
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-14Parser LR(1) Parser LALR(1)
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-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-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-15Narzędzie YACC i BISON
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-W-11Na czym polega redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
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-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
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
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ć kompilację konstrukcji pętli i tablic jednowymiarowych.
4,5potrafi syntezować pozyskane umiejętności w kompletny kompilator generujący kod z wykorzystaniem konstrukcji wymaganych na niższe oceny oraz dodatkowo tablic wielowymiarowych.
5,0potrafi ocenić kompilator generujący kod z wykorzystaniem konstrukcji wymaganych na niższe oceny oraz zaproponować i wykonać dodatkowe funkcjonalności (np. obsługę funkcji, generowanie kodu dla architektury 64-bitowej)
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O1/01_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
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-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-3Implementacja analizatora składniowego dla zdefiniowanego języka przy pomocy narzędzia BISON.
T-L-9Implementacja wywołań funkcji
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-L-4Implementacja zdefiniowanych akcji semantycznych.
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-14Parser LR(1) Parser LALR(1)
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-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-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-15Narzędzie YACC i BISON
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-W-11Na czym polega redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
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-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
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
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łceniaI_1A_O1/01_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ą
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-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-3Implementacja analizatora składniowego dla zdefiniowanego języka przy pomocy narzędzia BISON.
T-L-9Implementacja wywołań funkcji
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-L-4Implementacja zdefiniowanych akcji semantycznych.
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-14Parser LR(1) Parser LALR(1)
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-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-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-15Narzędzie YACC i BISON
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-W-11Na czym polega redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
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-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
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
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 bison i flex.
3,5potrafi samodzielnie stosować udostępnioną dokumentacje techniczną do implementacji kompilator
4,0potrafi wszystko na ocenę 3,5, potrafi również analizować dostępną dokumentacje techniczną jak również poszukiwać i skutecznie użyć dodatkowych informacji (np. przykładowa składnia analizatora składniowego)
4,5potrafi wszystko na ocenę 4,0, proponuje również nowe rozwiązania (np. alternatywny sposób zapisu wyrażeń regularnych w narzędziu flex, składnia wykraczająca poza przykłady z dokumentacji narzędzia bison) rozwiązań prezentowanych w dokumentacji
5,0potrafi wszystko na ocenę 4,5, zapoznał się z przynajmniej jednym narzędziem do budowy kompilatorów (np. ANTLR, Roslyn) i potrafi z nim porównać stosowane na zajęciach narzędzia (flex i bison)
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O1/01_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
Cel przedmiotuC-1Ukształtowanie wiedzy i umiejętności niezbędnych do opracowania kompilatora dla komputera sekwencyjnego o prostej architekturze
Treści programoweT-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-3Implementacja analizatora składniowego dla zdefiniowanego języka przy pomocy narzędzia BISON.
T-L-9Implementacja wywołań funkcji
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-L-4Implementacja zdefiniowanych akcji semantycznych.
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-14Parser LR(1) Parser LALR(1)
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-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-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-15Narzędzie YACC i BISON
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-W-11Na czym polega redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
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-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
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
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 rozumie i nie potrafi zastosować podstawowych algorytmów budowy kompilatorów
3,0rozumie i potrafi zastosować podstawowe algorytmy przedstawione w ramach zajęć
3,5potrafi wszystko na ocenę 3,0 oraz jest w stanie zmodyfikować implementacje prostych algorytmów
4,0potrafi wszystko na ocenę 3,5 oraz jest w stanie zmodyfikować implementacje złożonych algorytmów
4,5potrafi wszystko na ocenę 4,0 oraz potrafi wybrać efektywną implementacje używanych algorytmów budowy kompilatora (np. tablica symboli, obliczanie wyrażeń arytmetycznych, instrukcje skoku, indeksowanie tablic wielowymiarowych).
5,0potrafi wszystko na ocenę 4,5 oraz jest w stanie uogólnić znane algorytmy oraz przedstawić ocenę złożoności uzyskanego rozwiązania.
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O1/01_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ą
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-5Implementacja generatora kodu dla wyrażeń arytmetycznych dla zdefionowanej architektury komputera
T-L-3Implementacja analizatora składniowego dla zdefiniowanego języka przy pomocy narzędzia BISON.
T-L-9Implementacja wywołań funkcji
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-L-4Implementacja zdefiniowanych akcji semantycznych.
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-14Parser LR(1) Parser LALR(1)
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-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-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-15Narzędzie YACC i BISON
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-W-11Na czym polega redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
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-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
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
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 rozumie potrzeby dokształcania i dzielenia się wiedzą w zakresie metod i narzędzi do tworzenia kompilatorów
3,0rozumie potrzebę dokształcania i dzielenia się wiedzą w zakresie metod i narzędzi do tworzenia kompilatorów
3,5jest w stanie zaprezentować w pełni zaimplementowane rozwiązanie
4,0jest w stanie zaprezentować w pełni i przedyskutować z prowadzącym zaimplementowane rozwiązanie
4,5na bazie kompetencji wymaganych na niższe oceny jest w stanie podzielić się wiedzą w usystematyzowany sposób z grupą
5,0na bazie kompetencji wymaganych na niższe oceny jest w stanie przygotować i zaprezentować własne propozycje w zakresie metod i narzędzi do tworzenia kompilatorów
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O1/01_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
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-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-3Implementacja analizatora składniowego dla zdefiniowanego języka przy pomocy narzędzia BISON.
T-L-9Implementacja wywołań funkcji
T-L-2Implementacja analizatora leksykalnego dla zdefiniowanego języka programowania przy pomocy narzędzia FLEX
T-L-6Generacja kodu dla instrukcji warunkowych i pętli.
T-L-7Iimplementacja korzystania z tablic jedno- i wielowymiarowych.
T-L-4Implementacja zdefiniowanych akcji semantycznych.
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-14Parser LR(1) Parser LALR(1)
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-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-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-15Narzędzie YACC i BISON
T-W-8Symulacja automatu niedeterministycznego Miejsce analizatora składniowego w kompilatorze Wyprowadzenie, typy wyprowadzeń Drzewo wyprowadzeń
T-W-11Na czym polega redukcja w parserach wstępujących Czym jest uchwyt Sposób działania parsera wstępującego
T-W-7Tworzenie analizatora leksykalnego przy użyciu Leksa Specyfikacja dla Leksa Automaty skończone: deterministyczne i niedeterministyczne
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-9Eliminacja lewostronnej rekurencji Faktoryzacja lewostronna Zbiór FIRST Zbiór FOLLOW
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
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 ma świadomości odpowiedzialności za wspólnie realizowane zadania dotyczące tworzenia kompilatorów
3,0ma świadomość odpowiedzialnośći za wspólnie realizowane zadania i potrafi uczestniczyć w zespole przygotowującym projekt języka i kompilatora
3,5ma świadomość odpowiedzialnośći za wspólnie realizowane zadania i potrafi aktywnie uczestniczyć w zespole przygotowującym projekt języka i kompilatora
4,0ma świadomość odpowiedzialnośći za wspólnie realizowane zadania i potrafi analizować proponowane rozwiązania i dodawać istotne propozycje w trakcie aktywnego uczestnictwa w zespole przygotowującym projekt języka i kompilatora
4,5ma świadomość odpowiedzialnośći za wspólnie realizowane zadania i potrafi ocenić przydatność proponowanych rozwiązań oraz wyjaśnić innym studentom zagadnienia dotyczące budowy kompilatora
5,0ma świadomość odpowiedzialnośći za wspólnie realizowane zadania i potrafi podjąć się przewodnictwa w grupie