Techniki translacji 2007

Środa 915 - 1100 C-4/35 wykład

Czwartek 915 - 1100 TN C-4/35 ćwiczenia - mgr Marcin Zawada

Kolokwium zaliczeniowe odbędzie się na wykładzie 13 czerwca.

Kolokwium poprawkowe odbędzie się 25 czerwca o godz. 915 w sali C-11/P.01.


Literatura

  1. A.V. Aho, R. Sethi, J.D. Ullman, Kompilatory. Reguły, metody i narzędzia, WNT, Warszawa 2002, (ISBN: 83-204-2656-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. Studia Informatyczne - Podstawy kompilatorów (http://wazniak.mimuw.edu.pl/)

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

  1. Wprowadzenie (21-02-2007)
  2. Analiza leksykalna (28-02-2007)
  3. Wstęp do analizy składniowej (7-03-2007)
  4. Analiza metodą zstępującą (14-03-2007)
  5. Gramatyki typu LL(k) (21-03-2007)
  6. Analiza metodą wstępującą (28-03-2007)
  7. Gramatyki LR(k) (4-04-2007) (Przykład z wykładu )
  8. Gramatyki SLR i LR(1) (11-04-2007)
  9. Gramatyki LALR (18-04-2007)
  10. Translacja sterowana składnią (25-04-2007) (Przykład z wykładu )
  11. Zależności kontekstowe (9-05-2007)
  12. Synteza kodu (16-05-2007)
  13. Środowisko czasu wykonania (23-05-2007)
  14. Podsumowanie wykładu. (30-05-2007)

Listy zadań


Zadania programistyczne

Zadania należy napisać czytelnie, z komentarzami umożliwiającymi zrozumienie implementacji oraz poznanie danych autora. Studenci o nieparzystych numerach indeksów oddają zadania wykładowcy a o parzystych prowadzącemu ćwiczenia. Zadania mogą być oddawane przez email.

  1. Napisz w LEX-ie program który czyta dowolny plik tekstowy, usuwa w nim wszystkie białe znaki na końcu i na początku wiersza, zmienia wszystkie wystąpienia ciągów tabulatorów i spacji na dokładnie jedną spację, oraz na końcu dopisuje liczbę linii i słów (ciągi znaków oddzielone białymi znakami).
    (Termin oddania 15 marca)
  2. Używając tylko LEX-a zaimplementuj prosty kalkulator postfiksowy dla liczb całkowitych wykonujący operacje dodawania (+), odejmowania (-), mnożenia (*), dzielenia całkowitoliczbowego (/) i operację modulo (%). Wyrażenie do policzenia powinno być napisane w jednej linii. Program powinien wyświetlać wynik lub komunikat o błędzie (jak najbardziej szczegółowy). Przykład sesji:
    2 3+4*
    =20
    2 3+*
    Błąd: za mała liczba argumentów
    2.4 3+
    Błąd: zły symbol "."
    
    (Termin oddania 28 marca)
  3. Używając LEX-a i BISON-a zaimplementuj translator wyrażeń arytmetycznych z postaci infiksowej do postaci postfiksowej (takiej jak w poprzednim zadaniu) i podającej wynik obliczenia wyrażenia. Przykład sesji:
    2+3*(4-5)
    2 3 4 5 - * +
    Wynik: -1
    2+3*(4-5
    Błąd.
    
    (Termin oddania 26 kwietnia)
  4. Projekt - prosty kompilator.
    (Termin oddania 31 maja)

Zasady zaliczenia kursu

  1. Zaliczenie kursu następuje przez zaliczenie kolokwium końcowego.
  2. Zasadniczym celem ćwiczeń jest ułatwienie studentom samodzielnej pracy nad opanowaniem materiału w czasie całego semestru.
  3. 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.
  4. Dodatkowym warunkiem zaliczenia jest oddanie przez studenta w formie pisemnej (PDF) wyznaczonych zadań zrobionych na ćwiczeniach. Oddawane zadanie powinno być rozwiązane dokładnie, w sposób formalny i przejrzysty. Zadanie wyznacza prowadzący ćwiczenia.
  5. Zadania mogą posiadać również formę programistyczną. W takim przypadku każdy student oddaje takie zadanie indywidualnie.
  6. Oddanie zadań pisemnych i programistycznych jest warunkiem koniecznym do uzyskania zaliczenia.
  7. Kolokwium końcowe jest pisane na ostatnim wykładzie.
  8. 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.
  9. Oceną końcową jest ocena z kolokwium która może być podwyższona za aktywność na ćwiczeniach.

Valid XHTML 1.1! Valid CSS!

Maciej.Gebala@pwr.edu.pl