Seznam prezentací:
1. Úvod do kurzu, úvod do teorie překladačů, struktura překladače. Specifikace programovacích jazyků.
2. Lexikální analýza – konečné automaty, regulární výrazy. Implementace lexikálního analyzátoru.
3. Syntaktická analýza, analýza shora – dolů. LL (1) gramatiky, výpočet množin FIRST a FOLLOW.
4. Implementace překladače – zásobníková automat pro LL (1) jazyky. Analýza rekurzivním sestupem. Generátory překladačů - javacc.
5. Syntaktická analýza zdola - nahoru. LR (1) jazyky, nástroje: flex a Bison.
6. Interní reprezentace programu – vnitřní reprezentace programu. Generování cílového kódu.
7. Sémantická analýza, kontrola typů.
8. Struktura programu běhu - správa paměti.
9. Optimalizace kódu.
10. Pokročilá témata: operační sémantika, syntaxí řízený překlad – atributové gramatiky.
Seznam cvičení (předpokládá se, že všechny cvičení budou v počítačových laboratořích)
1. Implementace jednoduchého interpretu pro matematické výrazu (pro porovnání s pokročilejšími přístupy uvedenými později).
2. Implementace lexikálního analyzátoru.
3. Implementace algoritmů pro výpočet množin First a Follow.
4. Implementace překladače pomocí rekurzivního sestupu.
5. Úvod do generátorů překladačů - javacc. První fáze projektu - bude implementována analyzátor kódu v javacc.
6. Nástroj ANTLR – návrhový vzor Visitor.
7. Druhá fáze projektu - realizace typové kontroly v projektu.
8. Úvod do generování cílového kódu pro JVM
9. Implementace generátoru cílového kódu.
10. Hodnocení projektu.
1. Úvod do kurzu, úvod do teorie překladačů, struktura překladače. Specifikace programovacích jazyků.
2. Lexikální analýza – konečné automaty, regulární výrazy. Implementace lexikálního analyzátoru.
3. Syntaktická analýza, analýza shora – dolů. LL (1) gramatiky, výpočet množin FIRST a FOLLOW.
4. Implementace překladače – zásobníková automat pro LL (1) jazyky. Analýza rekurzivním sestupem. Generátory překladačů - javacc.
5. Syntaktická analýza zdola - nahoru. LR (1) jazyky, nástroje: flex a Bison.
6. Interní reprezentace programu – vnitřní reprezentace programu. Generování cílového kódu.
7. Sémantická analýza, kontrola typů.
8. Struktura programu běhu - správa paměti.
9. Optimalizace kódu.
10. Pokročilá témata: operační sémantika, syntaxí řízený překlad – atributové gramatiky.
Seznam cvičení (předpokládá se, že všechny cvičení budou v počítačových laboratořích)
1. Implementace jednoduchého interpretu pro matematické výrazu (pro porovnání s pokročilejšími přístupy uvedenými později).
2. Implementace lexikálního analyzátoru.
3. Implementace algoritmů pro výpočet množin First a Follow.
4. Implementace překladače pomocí rekurzivního sestupu.
5. Úvod do generátorů překladačů - javacc. První fáze projektu - bude implementována analyzátor kódu v javacc.
6. Nástroj ANTLR – návrhový vzor Visitor.
7. Druhá fáze projektu - realizace typové kontroly v projektu.
8. Úvod do generování cílového kódu pro JVM
9. Implementace generátoru cílového kódu.
10. Hodnocení projektu.