Název: Překladače Zkratka: PRE Typ: povinný Rozsah: 14 týdnů, týdně 2 hodiny přednášek + 2 hodiny seminárních cvičení Kredity: 5 Způsob ukončení: zkouška Katedra: katedra informačních technologií FH TUL Přednášející: RNDr. Petr Kolář
Stručná anotace předmětu:V předmětu jsou probírány principy činnosti překladačů programovacích jazyků. Studenti se seznámí s algoritmy, reprezentacemi, datovými strukturami a nástroji používanými při vytváření překladačů, které lze výhodně uplatnit i v jiných aplikacích. Přínosem předmětu je také podrobnější seznámení s překladačem jakožto příkladem poměrně rozsáhlého programového díla.
Témata přednášek:Strojově a problémově orientované jazyky. Funkce a struktura překladače. Fáze překladu, reprezentace programu při překladu. Porovnání činnosti kompilátoru a interpretu. Využitelnost překladače pro jiné jazyky a platformy.
Vlastnosti procesoru a operačního systému. Problémy přenositelnosti programů.
Lexikální analýza. Program Lex (Flex).
Reprezentace datových typů a operací s nimi v době běhu programu. Přenositelnost a interoperabilita.
Objektové typy. Třídy paměti. Organizace paměti v době běhu programu. Statické data, zásobník a halda.
Správa volné paměti, garbage collecting.
Organizace paměti při překladu. Tabulka symbolů. Reprezentace typů.
Syntaktická analýza. Syntaktická analýza shora dolů, jazyky LL(k).
Syntaktická analýza zdola nahoru, jazyky LR(k). Generátor syntaktických analyzátorů YACC (Bison).
Překlady programových konstrukcí if-then-else, while-do, repeat-until, for cyklus, jejich optimalizace.
Volání procedur a funkcí; aktivační záznam; způsoby předávání parametrů.
Sémantická analýza. Překladové a atributové gramatiky.
Problematika generování kódu. Optimalizace programu. Ladění, trasování, běhové testy, post-mortem dump
Náplň cvičení:Na cvičeních bude procvičována látka probraná při přednáškách. Studenti vytvoří vlastní lexikální analyzátor, seznámí se s překladačem jazyka PL/0 pracujícím metodou rekurzivního sestupu a naučí se používat nástroje LEX a YACC.
Literatura:Melichar, B.: Překladače, skriptum ČVUT 1989
Melichar, B.: Překladače cvičení, skriptum ČVUT 1990.
Gries, D.: Kompilátory číslicových počítačov (Compiler Construction for Digital Computers), Alfa Bratislava 1981.
Wirth, N.: Algoritmy a štruktúry údajov, Alfa Bratislava 1987.
Kučera, L.: Kombinatorické algoritmy, Matematický seminář SNTL 1983.
Prerekvizity: Gramatiky a automatyNavazující: -
Datum poslední změny: 8. 1. 2002