FI:PA037 Projekt z překladačů - Informace o předmětu
PA037 Projekt z překladačů
Fakulta informatikyjaro 2024
- Rozsah
- 1/2/1. 4 kr. (plus ukončení). Ukončení: z.
- Vyučující
- prof. RNDr. Antonín Kučera, Ph.D. (přednášející)
- Garance
- prof. RNDr. Antonín Kučera, Ph.D.
Katedra teorie programování – Fakulta informatiky
Kontaktní osoba: prof. RNDr. Antonín Kučera, Ph.D.
Dodavatelské pracoviště: Katedra teorie programování – Fakulta informatiky - Rozvrh
- Po 19. 2. až Čt 9. 5. Čt 12:00–13:50 A319
- Předpoklady
- PA008 Překladače
- Omezení zápisu do předmětu
- Předmět je nabízen i studentům mimo mateřské obory.
- Mateřské obory/plány
- Analýza a zpracování obrazu (program FI, N-VIZ)
- Aplikovaná informatika (program FI, N-AP)
- Bezpečnost informačních technologií (angl.) (program FI, N-IN)
- Bezpečnost informačních technologií (program FI, N-IN)
- Bioinformatika a systémová biologie (program FI, N-UIZD)
- Bioinformatika (program FI, N-AP)
- Computer Games Development (program FI, N-VIZ_A)
- Computer Graphics and Visualisation (program FI, N-VIZ_A)
- Computer Networks and Communications (program FI, N-PSKB_A)
- Cybersecurity Management (program FI, N-RSSS_A)
- Diskrétní algoritmy a modely (program FI, N-TEI)
- Formální analýza počítačových systémů (program FI, N-TEI)
- Grafický design (program FI, N-VIZ)
- Graphic Design (program FI, N-VIZ_A)
- Hardware Systems (program FI, N-PSKB_A)
- Hardwarové systémy (program FI, N-PSKB)
- Image Processing and Analysis (program FI, N-VIZ_A)
- Informační bezpečnost (program FI, N-PSKB)
- Informační systémy (program FI, N-IN)
- Informatika (program FI, M-IN)
- Informatika (program FI, N-IN)
- Information Security (program FI, N-PSKB_A)
- Kvantové a jiné neklasické výpočetní modely (program FI, N-TEI)
- Paralelní a distribuované systémy (program FI, N-IN)
- Počítačová grafika a vizualizace (program FI, N-VIZ)
- Počítačová grafika (program FI, N-IN)
- Počítačové sítě a komunikace (program FI, N-IN)
- Počítačové sítě a komunikace (program FI, N-PSKB)
- Počítačové systémy (program FI, N-IN)
- Principy programovacích jazyků (program FI, N-TEI)
- Programovatelné technické struktury (angl.) (program FI, N-IN)
- Programovatelné technické struktury (program FI, N-IN)
- Řízení kyberbezpečnosti (program FI, N-RSSS)
- Řízení vývoje služeb (program FI, N-RSSS)
- Řízení vývoje softwarových systémů (program FI, N-RSSS)
- Services Development Management (program FI, N-RSSS_A)
- Služby - výzkum, řízení a inovace (angl.) (program FI, N-AP)
- Služby - výzkum, řízení a inovace (program FI, N-AP)
- Sociální informatika (program FI, B-AP)
- Software Systems Development Management (program FI, N-RSSS_A)
- Software Systems (program FI, N-PSKB_A)
- Softwarové systémy (program FI, N-PSKB)
- Strojové učení a umělá inteligence (program FI, N-UIZD)
- Teoretická informatika (program FI, N-IN)
- Učitelství výpočetní techniky pro střední školy (program FI, M-SS)
- Učitelství výpočetní techniky pro střední školy (program FI, M-TV)
- Učitelství výpočetní techniky pro střední školy (program FI, N-SS) (2)
- Umělá inteligence a zpracování přirozeného jazyka (program FI, N-IN)
- Vývoj počítačových her (program FI, N-VIZ)
- Zpracování a analýza rozsáhlých dat (program FI, N-UIZD)
- Zpracování obrazu (program FI, N-AP)
- Zpracování přirozeného jazyka (program FI, N-UIZD)
- Cíle předmětu
- Účelem semináře je hlubší seznámení s problematikou návrhu
programovacích jazyků a jejich překladačů. Student by měl získat jasnou
představu o fungování reálných překladačů, o problémech, které jsou spojeny
s jejich implementací a možných přístupech k řešení těchto problémů.
Podmínkou udělení zápočtu je plně funkční implementace překladače jednoduchého
programovacího jazyka. Možná je spolupráce ve skupinách (2--4 studenti),
náročnost projektu roste úměrně počtu členů.
Hlavním cílem kurzu je: detailně porozumět problematice návrhu programovacích jazyků a jejich překladačů; implementovat překladač vybraného programovacího jazyka. - Výstupy z učení
- Vlastní zkušenost s implementací překladače.
- Osnova
- Logická struktura překladače. Formalismy pro specifikaci jednotlivých modulů.
- Lexikální analyzátor. Regulární výrazy. Princip nejdelší shody. Precedence lexémů.
- Syntaktický analyzátor. Analýza shora a zdola.
- Sémantický analyzátor. Atributové gramatiky. Tok atributů. Vyhodnocení atributů během syntaktické analýzy.
- Generátor kódu, optimalizace.
- Úplná specifikace jednoduchého optimalizujícího překladače, vazba a spolupráce mezi logickými moduly.
- Tabulky symbolů jako atributy. Zpracování deklarací, typová kontrola, analýza rozsahu viditelnosti.
- Funkce. Aktivační záznam. Předávání parametrů. Konvence jazyků C a Pascal.
- Vstup a výstup. Vazby na operační systém. Unix a C.
- Překlad do asembleru procesoru I386, konvence jazyka C.
- Literatura
- WILHELM, Reinhard a Dieter MAURER. Compiler design. Wokingham: Addison-Wesley Publishing Company, 1995, xv, 606 s. ISBN 0-201-42290-5. info
- FISCHER, Charles N. a Richard J. LEBLANC. Crafting a compiler. Menlo Park: Benjamin/Cummings Publishing Company, 1988, 811 s. ISBN 0-8053-3201-4. info
- AHO, Alfred V., Ravi SETHI a Jeffrey D. ULLMAN. Compilers, principles, techniques, and tools. Reading: Addison-Wesley Publishing Company, 1987, x, 796 s. ISBN 0-201-10088-6. info
- Výukové metody
- Přednášky, cvičení, projekt.
- Metody hodnocení
- Semináře a práce na projektu.
Dokončení skupinového projektu je podmínkou k udělení zápočtu. - Další komentáře
- Studijní materiály
Předmět je vyučován každoročně.
- Statistika zápisu (jaro 2024, nejnovější)
- Permalink: https://is.muni.cz/predmet/fi/jaro2024/PA037