PA037 Projekt z překladačů

Fakulta informatiky
jaro 2007
Rozsah
0/2. 2 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. Mojmír Křetínský, CSc.
Katedra teorie programování – Fakulta informatiky
Kontaktní osoba: prof. RNDr. Antonín Kučera, Ph.D.
Rozvrh
Čt 14:00–15:50 B411
Předpoklady
P008 Překladače
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á 6 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ů.
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.
Další komentáře
Předmět je vyučován každoročně.
Předmět je zařazen také v obdobích jaro 2003, jaro 2004, jaro 2005, jaro 2006, 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 2022, jaro 2023, jaro 2024.