Detail předmětu
Teorie programovacích jazyků
TJD Ak. rok 2024/2025 zimní semestr
Typy programovacích jazyků: procedurální a deklarativní, rozdíly z hlediska sémantiky. Problém formální definice programovacích jazyků. Různé možnosti formální definice sémantiky programovacích jazyků. Axiomatická definice sémantiky: Floyd-Hoarova logika. Denotační definice sématiky: lambda kalkulus. Technologie překladu programovacích jazyků po syntaktické analýze. Řešení kontextovosti programovacích jazyků v syntaxí řízeném bezkontextovém překladači. Typové systémy. Generování cílového kódu. Metody přidělování registrů. Generování cílového kódu pro procesory se zřetězeným zpracováním.
U všech absolventů předmětu se očekává přehled a porozumění základům uvedených témat. Hlubší znalosti se vyžadují u tématu, které zpracovali a prezentovali v eseji. Toto téma zpravidla nějak souvisí se zaměřením disertační práce. Jeho zpracování vyžaduje nastudování knižní publikace nebo kolekce tématicky souvisejících článků z časopisů a konferencí.
Otázky k SDZ:
- Typy programovacích jazyků: procedurální a deklarativní, rozdíly z hlediska sémantiky.
- Problém formální definice programovacích jazyků. Různé možnosti formální definice sémantiky programovacích jazyků.
- Axiomatická definice sémantiky: Floyd-Hoarova logika.
- Denotační definice sématiky: lambda kalkulus.
- Technologie překladu programovacích jazyků po syntaktické analýze.
- Řešení kontextovosti programovacích jazyků v syntaxí řízeném bezkontextovém překladači.
- Mezijazyky mezi front a backendem překladače.
- Typové systémy.
- Generování cílového kódu. Metody přidělování registrů.
- Generování cílového kódu pro procesory se zřetězeným zpracováním.
Garant předmětu
Koordinátor předmětu
Jazyk výuky
Zakončení
Rozsah
- 39 hod. přednášky
Bodové hodnocení
- 100 bodů závěrečná zkouška
Zajišťuje ústav
Cíle předmětu
Získat znalosti zejména v oblasti zéjména sémantiky a překladu programovacích jazyků. Zaměřit se na možnost formální definice syntaxe a sémantiky programovacích jazyků.
Schopnost formálně definovat i používat definici sémantiky různých programovacích jazyků. Mít přehled o generování kódu pro moderní procesory.
Literatura studijní
- Sethi R.: Programming Languages Concepts, Addison Wesley 1989
- Aho, V. A. - Sethi, R. - Ullmann, J. D. : Compilers - Principles, Techniques, and Tools, Addison - Wesley Publishing Company 1987
- Gordon, J., C.: Programming language Theory and its Implementation, Prentice Hall 1988
- Reynolds, J.: Theories of Programming Languages, Cambridge University Press, 2009
Osnova přednášek
- Typy programovacích jazyků: procedurální a deklarativní, rozdíly z hlediska sémantiky.
- Problém formální definice programovacích jazyků. Různé možnosti formální definice sémantiky programovacích jazyků.
- Axiomatická definice sémantiky: Floyd-Hoarova logika.
- Denotační definice sématiky: lambda kalkulus.
- Technologie překladu programovacích jazyků po syntaktické analýze.
- Řešení kontextovosti programovacích jazyků v syntaxí řízeném bezkontextovém překladači.
- Typové systémy.
- Generování cílového kódu. Metody přidělování registrů.
- Generování cílového kódu pro procesory se zřetězeným zpracováním.
Průběžná kontrola studia
diskuze na doktorandských přednáškách, zpracování vlastní tématické práce - eseje
Pouze přednášky. V případě otevření předmětu jako řízeného studia konzultace nad zadanou literaturou.
Zařazení předmětu ve studijních plánech
- Program DIT, libovolný ročník, povinně volitelný skupina O
- Program DIT, libovolný ročník, povinně volitelný skupina O
- Program DIT-EN (anglicky), libovolný ročník, povinně volitelný skupina O
- Program DIT-EN (anglicky), libovolný ročník, povinně volitelný skupina O
- Program VTI-DR-4, obor DVI4, libovolný ročník, volitelný
- Program VTI-DR-4, obor DVI4, libovolný ročník, volitelný
- Program VTI-DR-4 (anglicky), obor DVI4, libovolný ročník, volitelný