Detail předmětu

Teorie programovacích jazyků

TJD Ak. rok 2021/2022 zimní semestr

Aktuální akademický rok

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:

  1. Typy programovacích jazyků: procedurální a deklarativní, rozdíly z hlediska sémantiky.
  2. Problém formální definice programovacích jazyků. Různé možnosti formální definice sémantiky programovacích jazyků.
  3. Axiomatická definice sémantiky: Floyd-Hoarova logika.
  4. Denotační definice sématiky: lambda kalkulus.
  5. Technologie překladu programovacích jazyků po syntaktické analýze.
  6. Řešení kontextovosti programovacích jazyků v syntaxí řízeném bezkontextovém překladači.
  7. Mezijazyky mezi front a backendem překladače.
  8. Typové systémy.
  9. Generování cílového kódu. Metody přidělování registrů.
  10. 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

česky, anglicky

Zakončení

zkouška (kombinovaná)

Rozsah

  • 39 hod. přednášky

Bodové hodnocení

  • 100 bodů závěrečná zkouška

Zajišťuje ústav

Přednášející

Cvičící

Stránky předmětu

Získané dovednosti, znalosti a kompetence z předmětu

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.

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ů.

Literatura studijní

  • Sethi R.: Programming Languages Concepts, Addison Wesley 1989
  • Nilson U. - Matuszynski J.: Logic, Programming and Prolog, John Wiley 1990
  • Nielson R.,H. - Nielson F.: Semantics with Applications - A Formal Introduction, John Wiley 1992
  • 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
  • Friedman, D.P., Wand, M.: Essentials of Programming Language, MIT Press, 2008.
  • Pierce, B.C.: Types and Programming Languages, MIT Press, 2002.

Osnova přednášek

  1. Typy programovacích jazyků: procedurální a deklarativní, rozdíly z hlediska sémantiky.
  2. Problém formální definice programovacích jazyků. Různé možnosti formální definice sémantiky programovacích jazyků.
  3. Axiomatická definice sémantiky: Floyd-Hoarova logika.
  4. Denotační definice sématiky: lambda kalkulus.
  5. Technologie překladu programovacích jazyků po syntaktické analýze.
  6. Řešení kontextovosti programovacích jazyků v syntaxí řízeném bezkontextovém překladači.
  7. Typové systémy.
  8. Generování cílového kódu. Metody přidělování registrů.
  9. 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

Kontrolovaná výuka

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ý
  • Program VTI-DR-4 (anglicky), obor DVI4, libovolný ročník, volitelný
Nahoru