Języki formalne i kompilatory

Transkrypt

Języki formalne i kompilatory
Nazwa przedmiotu:
JĘZYKI FORMALNE I KOMPILATORY
Formal Languages and Compilers
Kierunek:
Forma studiów:
Kod przedmiotu:
Informatyka
Stacjonarne
Rodzaj przedmiotu:
Poziom kwalifikacji:
obowiązkowy w ramach specjalności
Inżynieria oprogramowania
II stopnia
IO1_05
Rok: I
Semestr: I
Rodzaj zajęć:
Liczba godzin/tydzień:
Liczba punktów:
E
wykład, laboratorium
2W , 2L
4 ECTS
PRZEWODNIK PO PRZEDMIOCIE
I KARTA PRZEDMIOTU
CEL PRZEDMIOTU
C1. Zapoznanie studentów z podstawami teorii języków formalnych, automatów i metodami
implementacji kompilatorów.
C2. Nabycie przez studentów praktycznych umiejętności implementacji kompilatorów.
C3. Nabycie przez studentów praktycznych umiejętności w zakresie pracy samodzielnej i
zespołowej, opracowywania sprawozdań, analizowania uzyskanych wyników, itp.
WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI
 Wiedza z zakresu matematyki dyskretnej i logiki matematycznej.
 Umiejętność programowania w językach wysokiego poziomu.
 Znajomość podstaw języków niskiego poziomu.
 Umiejętność korzystania z różnych źródeł informacji w tym z instrukcji i dokumentacji
technicznej.
 Umiejętności pracy samodzielnej i w grupie.
 Umiejętności prawidłowej interpretacji i prezentacji własnych działań.
EFEKTY KSZTAŁCENIA
EK 1 – Zna podstawy teoretyczne języków formalnych – operacje, własności, hierarchie.
EK 2 – Zna różne typy automatów skończonych, potrafi dokonać minimalizacji automatu
skończonego.
EK 3 – Potrafi dokładnie opisać proces kompilacji z uwzględnieniem podziału na różne etapy.
EK 4 – Potrafi przedstawić gramatykę nieskomplikowanego języka programowania.
EK 5 – Zna różnego rodzaju algorytmy wykorzystywane do budowy analizatorów leksykalnych
i składniowych.
EK 6 – Korzystając z wyspecjalizowanych narzędzi jest w stanie zaimplementować prosty
kompilator języka wysokiego poziomu.
EK 7 – Potrafi użyć różnego rodzaju technik do optymalizacji, pod względem różnych kryteriów,
kodu wynikowego.
EK 8 – Potrafi pracować samodzielnie oraz w zespole, a także przygotować sprawozdanie z
przebiegu realizacji ćwiczeń.
TREŚCI PROGRAMOWE
Forma zajęć – WYKŁADY
W 1 – Języki formalne, operacje na językach i ich własności
W 2 – Języki regularne, własności
W 3 – Wyrażenia regularne i ich aplikacje w informatyce praktycznej
W 4 – Niedeterministyczne automaty skończone, języki akceptowane i rozpoznawane
przez automaty
W 5 – Algorytmy minimalizacji automatów
W 6 – Deterministyczne automaty skończone, determinizacja automatów
W 7 – Gramatyki generatywne
W 8 – Wprowadzenie do kompilacji
W 9 – Analiza leksykalna
W 10 – Analiza składniowa
W 11 – Translacja sterowana składnią
W 12 – Generowanie kodu pośredniego
W 13 – Środowisko uruchomieniowe
W 14 – Generowanie kodu wynikowego
W 15 – Optymalizacja kodu wynikowego
Forma zajęć – LABORATORIUM
L 1 – Języki formalne – operacje i własności
L 2 – Języki regularne – własności
L 3 – Wyrażenia regularne – zastosowania i algorytmy
L 4 – Niedeterministyczne automaty skończone
L 5 – Minimalizacja automatów skończonych
L 6 – Deterministyczne automaty skończone
L 7 – Gramatyki generatywne
L 8 – Wprowadzenie do narzędzi wspomagających tworzenie kompilatorów
L 9 – Implementacja analizatora leksykalnego
L 10 – Implementacja analizatora składniowego
L 11 – Translacja sterowana składnią
L 12 – Generowanie kodu pośredniego
L 13 – Środowisko uruchomieniowe
L 14 – Generowanie kodu wynikowego
L 15 – Optymalizacja kodu wynikowego
NARZĘDZIA DYDAKTYCZNE
1. – wykład z wykorzystaniem prezentacji multimedialnych
2. – ćwiczenia laboratoryjne
3. – instrukcje do wykonania ćwiczeń laboratoryjnych
SPOSOBY OCENY ( F – FORMUJĄCA, P – PODSUMOWUJĄCA)
F1. – ocena przygotowania do ćwiczeń laboratoryjnych
F2. – ocena umiejętności stosowania zdobytej wiedzy podczas wykonywania ćwiczeń
F3. – ocena sprawozdań z realizacji ćwiczeń objętych programem nauczania
F4. – ocena aktywności podczas zajęć
Liczba
godzin
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
Liczba
godzin
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
P1. – ocena umiejętności rozwiązywania postawionych problemów oraz sposobu prezentacji
uzyskanych wyników – zaliczenie na ocenę*
P2. – ocena opanowania materiału nauczania będącego przedmiotem wykładu – zaliczenie wykładu
(lub egzamin)
*) warunkiem uzyskania zaliczenia jest otrzymanie pozytywnych ocen ze wszystkich ćwiczeń laboratoryjnych,
OBCIĄŻENIE PRACĄ STUDENTA
Forma aktywności
Godziny kontaktowe z prowadzącym
Średnia liczba godzin na
zrealizowanie aktywności
30W 30L  60 h
Godziny konsultacji z prowadzącym
5h
Godziny przeznaczone na egzamin
3h
Przygotowanie do ćwiczeń laboratoryjnych
15 h
Wykonanie aplikacji i sprawozdań z realizacji ćwiczeń
laboratoryjnych (czas poza zajęciami laboratoryjnymi)
10 h
Przygotowanie do egzaminu (kolokwium)
7h
Suma 
SUMARYCZNA LICZBA PUNKTÓW ECTS DLA PRZEDMIOTU
Liczba punktów ECTS, którą student uzyskuje na zajęciach
wymagających bezpośredniego udziału prowadzącego
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o
charakterze praktycznym, w tym zajęć laboratoryjnych i
projektowych

100 h
4 ECTS
2,7 ECTS
2,2 ECTS
LITERATURA PODSTAWOWA I UZUPEŁNIAJĄCA
1. J. Hopcroft, R. Motwani, J. Ullman, Wprowadzenie do teorii automatów, języków i
obliczeń, PWN, Warszawa 2005
2. M. Sipser, Wprowadzenie do teorii obliczeń, WNT, Warszawa2009
3. A.V. Aho, M.S. Lam, R. Sethi, J.D. Ullman, Kompilatory. Reguły, metody i narzędzia,
WNT, Warszawa 2002
4. M. Foryś,W. Foryś, Teoria automatów i języków formalnych, Akademicka Oficyna
Wydawnicza Exit, 2005
5. R. Wilhelm, D. Maurer, Compiler Design, Addison-Wesley, 1995.
6. J. P. Tremblay, P.G. Sorenson, The Theory and Practice of Compiler Writing, McGrawHill, 1985
PROWADZĄCY PRZEDMIOT ( IMIĘ, NAZWISKO, ADRES E-MAIL)
1. dr inż. Andrzej Grosser [email protected]
2. dr Mirosław Kurkowski [email protected]
MACIERZ REALIZACJI EFEKTÓW KSZTAŁCENIA
Efekt
kształcenia
Odniesienie
danego efektu do
efektów
zdefiniowanych
dla całego
programu (PEK)
Cele
przedmiotu
EK1
KIO2_W14
C1
EK2
KIO2_W14
C1
EK3
KIO2_W14
C1
EK4
KIO2_W14
C1
EK5
KIO2_W14
C1
W1-W3
L1-L3
W4-W6
L4-L6
W8-W15
W7
L7
W10
EK6
KIO2_U19
C2
L8-L14
1, 2, 3
EK7
KIO2_U19
C2
L15
1, 2, 3
EK8
KIO2_U01
KIO2_U02
KIO2_U03
KIO2_U19
C3
L1-L15
1, 2, 3
Treści
programowe
Narzędzia
dydaktyczne
1, 2, 3
1, 2, 3
1
1, 2, 3
1
Sposób
oceny
F1-F4
P2
F1-F4
P2
P2
F1-F4
P2
P2
F1-F4
P1
F1-F4
P1
F2
F3
P1
II. FORMY OCENY - SZCZEGÓŁY
Efekt 1
Efekt 2
Efekt 3
Efekt 4
Efekt 5
Efekt 6
Efekt 7
Efekt 8
Student opanował
poniżej 60%
materiału
teoretycznego – test
egzaminacyjny
Student opanował
poniżej 60%
materiału
teoretycznego – test
egzaminacyjny
Opanował
przynajmniej 60%
materiału
teoretycznego – test
egzaminacyjny
Opanował
przynajmniej 60%
materiału
teoretycznego – test
egzaminacyjny
Opanował
przynajmniej 75%
materiału
teoretycznego – test
egzaminacyjny
Opanował
przynajmniej 75%
materiału
teoretycznego – test
egzaminacyjny
Opanował
przynajmniej 90%
materiału
teoretycznego – test
egzaminacyjny
Opanował
przynajmniej 90%
materiału
teoretycznego – test
egzaminacyjny
Student opanował
poniżej 60%
materiału
teoretycznego – test
egzaminacyjny
Student opanował
poniżej 60%
materiału
teoretycznego – test
egzaminacyjny
Student opanował
poniżej 60%
materiału
teoretycznego – test
egzaminacyjny
Student opanował
poniżej 60%
materiału
teoretycznego
i praktycznego –
kolokwia na
laboratoriach
Opanował
przynajmniej 60%
materiału
teoretycznego – test
egzaminacyjny
Opanował
przynajmniej 60%
materiału
teoretycznego – test
egzaminacyjny
Opanował
przynajmniej 60%
materiału
teoretycznego – test
egzaminacyjny
Opanował
przynajmniej 60%
materiału
teoretycznego
i praktycznego –
kolokwia na
laboratoriach
Opanował
przynajmniej 75%
materiału
teoretycznego – test
egzaminacyjny
Opanował
przynajmniej 75%
materiału
teoretycznego – test
egzaminacyjny
Opanował
przynajmniej 75%
materiału
teoretycznego – test
egzaminacyjny
Opanował
przynajmniej 75%
materiału
teoretycznego
i praktycznego –
kolokwia na
laboratoriach
Opanował
przynajmniej 90%
materiału
teoretycznego – test
egzaminacyjny
Opanował
przynajmniej 90%
materiału
teoretycznego – test
egzaminacyjny
Opanował
przynajmniej 90%
materiału
teoretycznego – test
egzaminacyjny
Opanował
przynajmniej 90%
materiału
teoretycznego
i praktycznego –
kolokwia na
laboratoriach
Student opanował
poniżej 60%
materiału
teoretycznego
i praktycznego –
kolokwia na
laboratoriach
Student opanował
poniżej 60%
materiału
teoretycznego
i praktycznego –
sprawozdania
Opanował
przynajmniej 60%
materiału
teoretycznego
i praktycznego –
kolokwia na
laboratoriach
Opanował
przynajmniej 60%
materiału
teoretycznego
i praktycznego –
sprawozdania
Opanował
przynajmniej 75%
materiału
teoretycznego
i praktycznego –
kolokwia na
laboratoriach
Opanował
przynajmniej 75%
materiału
teoretycznego
i praktycznego –
sprawozdania
Opanował
przynajmniej 90%
materiału
teoretycznego
i praktycznego –
kolokwia na
laboratoriach
Opanował
przynajmniej 90%
materiału
teoretycznego
i praktycznego –
sprawozdania
Dopuszcza się wystawienie oceny połówkowej o ile student spełniający wszystkie efekty kształcenia
wymagane do oceny pełnej spełnia niektóre efekty kształcenia odpowiadające ocenie wyższej
5
III. INNE PRZYDATNE INFORMACJE O PRZEDMIOCIE
1. Wszelkie informacje dla studentów (prezentacje do zajęć, instrukcje do ćwiczeń laboratoryjnych,
przykładowe aplikacje) dostępne są na stronie internetowej http://icis.pcz.pl/~mkurkowski, w
zakładce Dydaktyka.
2. Informacja na temat konsultacji przekazywana jest studentom podczas pierwszych zajęć danego z
przedmiotu.
6