Metody translacji
Semestr letni 2008
Wykład
Środa 16:15-18:00, sala 105
Ćwiczenia:
Środa 18:10-19:45, sala 141 (grupa W. Charatonika)
Środa 14:15-16:00, sala 105 (grupa S. Bali)
Egzaminy
I termin: poniedziałek 30 czerwca 10:00 sala 105. Wyniki egzaminu
II termin: piątek 19 września 10:00 sala 105
Listy zadań:
00
01
02
03
04
05
06
07
08
Slajdy do wykładu są na stronach wykładów z poprzednich lat.
Zasady zaliczania
Ocenę z zaliczenia oblicza się na podstawie
- aktywności na zajęciach (30%)
- wyniku kolokwium z 14.05.2008 (20%)
- oceny pierwszego projektu (20%)
- oceny drugiego projektu (30%)
Pierwszy projekt na pracownię
Napisać kompilator rekurencyjny własnego prostego języka do kodu
maszyny ze stosem.
Język wejściowy musi obejmować co najmniej
- instrukcję pętli
- instrukcję warunkową
- proste działania arytmetyczne
- proste instrukcje wejścia/wyjścia
Oprócz samego kompilatora pakiet musi dawać możliwość wykonania
wygenerowanego kodu (interpreter maszyny ze stosem) i przeglądania
kodu wynikowego (np disassembler).
Termin wykonania:
- specyfikacja języka wejściowego i wyjściowego: 26.03.2008
- cały projekt: 09.04.2008
Drugi projekt na pracownię
Używając generatorów lekserów i parserów (np flexa i bisona) napisać
translator języka z poprzedniego zadania, rozszerzonego jak niżej, na
wybrany istniejący i wykonywalny język niskiego poziomu (np java bytecode, MSIL lub assembler x86).
Język powinien obejmować
- strukturę blokową,
- procedury bezparametrowe,
- różne typy proste (co najmniej int, float, char, bool),
- wejście/wyjście dla różnych typów prostych,
- i bibliotekę matematyczną dla float (sqrt, sin, cos,...)
oraz dodatkowo jeden z trzech nastepujących elementów
- rekordy, tablice i napisy, standardowe operacje na napisach,
- rekordy i wskaźniki, zarządzanie składem,
- lub funkcje rekurencyjne z parametrami przekazywanymi przez wartość.
Dopuszczalna jest praca w zespołach dwuosobowych, ale wtedy
dostarczony kompilator powinien implementować wszystkie trzy dodatkowe
elementy.
Termin wykonania zadania z powodu mojego wypadku zostal przełożony na 19 września