PA037 Projekt z překladačů

Fakulta informatiky
jaro 2022
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
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
předmět má 52 mateřských oborů, zobrazit
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ě.
Výuka probíhá každý týden.
Předmět je zařazen také v obdobích jaro 2003, jaro 2004, jaro 2005, jaro 2006, jaro 2007, jaro 2008, jaro 2009, jaro 2010, jaro 2011, jaro 2012, jaro 2013, jaro 2014, jaro 2015, jaro 2016, jaro 2017, jaro 2018, jaro 2019, jaro 2020, jaro 2021, jaro 2023, jaro 2024, podzim 2024.