Języki formalne i techniki translacji 2020

Czwartek 915 - 1100 MS Teams wykład

Środa 1515 - 1655 TN/TP ćwiczenia (dr inż. A. Lauks-Dutka)

Piątek 1115 - 1300 TN/TP ćwiczenia (dr inż. A. Lauks-Dutka)

Poniedziałek 730 - 900 TN/TP laboratorium (mgr inż. K. Gotfryd)

Środa 1315 - 1500 TN/TP laboratorium (mgr inż. K. Gotfryd)

Czwartek 1315 - 1500 TN/TP laboratorium (mgr inż. K. Gotfryd)

Piątek 915 - 1100 TN/TP laboratorium (mgr inż. K. Gotfryd)

Kolokwium egzaminacyjne: 8 luty 2021, 915-1145, ePortal.
Poprawkowe kolokwium egzaminacyjne: 15 luty 2021, 915-1145, ePortal.

Ranking kompilatorów (miejsce w rankingu i ocena z laboratorium znajduje się na ePortalu)


Literatura

  1. T.A. Sudkamp, Languages and Machines, Pearson, 2006, (ISBN: 978-81-317-1475-1)
  2. J.E. Hopcroft, J.D. Ullman, Wprowadzenie do teorii automatów, języków i obliczeń, WNT, Warszawa 1994 (ISBN 83-01-11298-0)
  3. J.E. Hopcroft, R. Motwani, J.D. Ullman, Wprowadzenie do teorii automatów, języków i obliczeń, WNT, Warszawa 2005 (ISBN 83-01-14502-1)
  4. A.V. Aho, R. Sethi, J.D. Ullman, Kompilatory. Reguły, metody i narzędzia, WNT, Warszawa 2002, (ISBN: 83-204-2656-1)
  5. T.H. Cormen, Ch.E. Leiserson, R.L. Rivest, Wprowadzenie do algorytmów, WNT, Warszawa 1997 (ISBN 83-204-2144-6)
  6. Studia Informatyczne - Podstawy kompilatorów (http://wazniak.mimuw.edu.pl/)

Listy zadań na ćwiczenia


Listy zadań na laboratorium


Tematy wykładów (w przybliżeniu)

  1. Wprowadzenie do wykładu. DFA, NFA i RE. (8-10-2020)
  2. Równoważność DFA, NFA i RE. Minimalny DFA. (15-10-2020)
  3. Własności języków regularnych. Analiza leksykalna. (przykład z wykładu) (22-10-2020)
  4. Gramatyki bezkontekstowe. Postacie normalne Chomsky'ego i Greibach. (29-10-2020)
    (kartkówka z listy nr 1: zadanie pojawi się o 915 w MS Teams w zakładce pliki i na ekranie)
  5. Automat ze stosem (PDA). Równoważność PDA i gramatyk bezkontekstowych. (5-11-2020)
  6. Własności języków bezkontekstowych. (12-11-2020)
    (kartkówka z listy nr 2: zadanie pojawi się o 915 w MS Teams w zakładce pliki i na ekranie)
  7. Analiza składniowa. Translacja sterowana składnią. (przykłady z wykładu) (19-11-2020)
  8. Zależności kontekstowe. Synteza kodu i środowisko czasu wykonywania. (26-11-2020)
  9. Analiza zstępująca. Gramatyki typu LL(k). (3-12-2020)
    (kartkówka z listy nr 3: zadanie pojawi się o 915 w MS Teams w zakładce pliki i na ekranie)
  10. Analiza wstępująca. Gramatyki operatorowe. Gramatyki LR(k). (10-12-2020)
  11. Gramatyki SLR, LR(1) i LALR. (17-12-2020)
    (kartkówka z listy nr 4: zadanie pojawi się o 915 w MS Teams w zakładce pliki i na ekranie)
  12. Hierarchia Chomsky'ego. (7-01-2021)
  13. Wybrane zagadnienia języków formalnych. (14-01-2021)
  14. Podsumowanie wykładu. (21-01-2021)
    (kartkówka z listy nr 5: zadanie pojawi się o 915 w MS Teams w zakładce pliki i na ekranie)
  15. Powtórne omówienie trudnych zagadnień. (28-01-2021)

Zasady zaliczenia grupy kursów

Zaliczenie ćwiczeń

  1. Zasadniczym celem ćwiczeń jest ułatwienie studentom samodzielnej pracy nad opanowaniem materiału w czasie całego semestru. Ocena z ćwiczeń jest oceną jakości i intensywności pracy studenta w czasie semestru.
  2. Wykładowca ogłasza z odpowiednim wyprzedzeniem listy zadań do samodzielnego rozwiązania przed zajęciami. Na ćwiczeniach studenci prezentują rozwiązania zadań. W trakcie rozwiązywania wyjaśniane są wątpliwości dotyczące rozwiązania oraz przedstawiane alternatywne rozwiązania.
  3. Podstawą do wystawienia oceny są wyniki krótkich sprawdzianów. Sprawdziany będą polegały na rozwiązaniu jednego zadania i punktowane od 0 do 5. Materiałem obowiązującym na sprawdzianie są tematy przerobione na trzech poprzednich ćwiczeniach. Sprawdziany przeprowadzane są bez uprzedniej zapowiedzi. Nieobecność na sprawdzianie daje 0. [Z uwagi na to, że zajęcia są zdalne, kartkówki będą odbywały się na początku wykładu i będą zapowiedziane tydzień wcześniej. Szczegółowe zasady zostaną podane później.]
  4. Podstawą do obliczenia oceny z kursu jest średnia punktów ze sprawdzianów zaokrąglona w górę do 0.5. Średnia może być podwyższona przez prowadzącego w zależności od aktywności studenta na ćwiczeniach.
  5. Decyzję odnośnie wyboru zadań do rozwiązania podejmuje prowadzący.
  6. Dodatkowym warunkiem zaliczenia jest oddanie przez studenta w formie pisemnej (PDF) wyznaczonych zadań. Oddawane zadanie powinno być rozwiązane dokładnie, w sposób formalny i przejrzysty. Zadanie wyznacza prowadzący ćwiczenia. Zadanie oddane w ciągu tygodnia od daty wyznaczenia jest zaliczane jako aktywność studenta na ćwiczeniach. Nie oddanie zadania skutkuje obniżeniem średniej punktów z ćwiczeń o 1.
  7. Punktacja nie podlega poprawianiu po zakończeniu zajęć. Średnia punktów z ćwiczeń nie może przekroczyć 7.

Zaliczenie laboratorium

  1. Na laboratoriach studenci powinni oddawać implementacje list przygotowanych do kursu.
  2. Rozwiązania powinny być oddane najpóźniej na ostatnich zajęciach przed datą podaną na liście. [Rozwiązania powinny być dostarczone prowadzącemu najpóźniej w dniu podanym na liście.]
  3. Oddawane rozwiązania powinny być samodzielnie napisane.
  4. Ostatnie zadanie (projekt kompilatora) podlega wspólnej ocenie dla całego roku według kryterium poprawności i szybkości wynikowego kodu. Oceny są przyznawane w następujący sposób: najlepsze 5 rozwiązań - ocena 5.5, rozwiązania od 6 do 10 - 5.0, od 11 do 20 - 4.5, od 21 do 30 - 4.0, od 31 do 40 - 3.5, pozostałe oddane i poprawne - 3.0.
  5. Nieusprawiedliwione nie oddanie w terminie listy powoduje obniżenie oceny z projektu kompilatora o 0.5 za każdy tydzień spóźnienia.
  6. Zaliczenie projektu kompilatora jest warunkiem koniecznym zaliczenia kursu

Zaliczenie wykładu

  1. Zdanie kolokwium egzaminacyjnego jest warunkiem koniecznym zaliczenia kursu.
  2. Kolokwium odbędzie się w sesji egzaminacyjnej (stosuje się do niego zasady egzaminu z regulaminu studiów). W przypadku pisania kolokwium w dwóch terminach za ocenę przyjmuję się ocenę z drugiego terminu (nadpisanie oceny).
  3. Na kolokwium jedyną dopuszczalną pomocą naukową jest kartka formatu a4 podpisana w ten sposób aby z odległości 2 metrów dało się ustalić jej właściciela. Oprócz tego student nie ma prawa mieć żadnych innych kartek, książek i innych pomocy. Kartki z treścią zadań i miejscem na rozwiązania oraz brudnopisy dostarcza wykładowca.

Ocena końcowa grupy kursów (egzamin)

Ocena końcowa (egzamin) liczona jest według wzoru 0.2*PC+0.4*OP+0.4*KE i zaokrąglana w górę do najbliższej oceny (2.5 zaokrągla się jednak do 2.0).
[PC - średnia punktów z ćwiczeń, OP - ocena z projektu, KE - ocena z kolokwium egzaminacyjnego.]


Counter Valid XHTML 1.1! Valid CSS!

Maciej.Gebala@pwr.edu.pl