Detail předmětu

Teorie programovacích jazyků

FIT-TJDAk. rok: 2021/2022

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.

Jazyk výuky

čeština, angličtina

Výsledky učení 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.

Způsob a kritéria hodnocení

diskuze na doktorandských přednáškách, zpracování vlastní tématické práce - eseje

Učební cíle

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

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Pouze přednášky. V případě otevření předmětu jako řízeného studia konzultace nad zadanou literaturou.

Doporučená literatura

Aho, V. A. - Sethi, R. - Ullmann, J. D. : Compilers - Principles, Techniques, and Tools, Addison - Wesley Publishing Company 1987
Friedman, D.P., Wand, M.: Essentials of Programming Language, MIT Press, 2008.
Gordon, J., C.: Programming language Theory and its Implementation, Prentice Hall 1988
Nielson R.,H. - Nielson F.: Semantics with Applications - A Formal Introduction, John Wiley 1992
Nilson U. - Matuszynski J.: Logic, Programming and Prolog, John Wiley 1990
Pierce, B.C.: Types and Programming Languages, MIT Press, 2002.
Reynolds, J.: Theories of Programming Languages, Cambridge University Press, 2009
Sethi R.: Programming Languages Concepts, Addison Wesley 1989

Zařazení předmětu ve studijních plánech

  • Program DIT doktorský 0 ročník, zimní semestr, povinně volitelný
  • Program DIT doktorský 0 ročník, zimní semestr, povinně volitelný

  • Program VTI-DR-4 doktorský

    obor DVI4 , 0 ročník, zimní semestr, volitelný

  • Program VTI-DR-4 doktorský

    obor DVI4 , 0 ročník, zimní semestr, volitelný

  • Program DIT-EN doktorský 0 ročník, zimní semestr, povinně volitelný
  • Program DIT-EN doktorský 0 ročník, zimní semestr, povinně volitelný

  • Program VTI-DR-4 doktorský

    obor DVI4 , 0 ročník, zimní semestr, volitelný

  • Program VTI-DR-4 doktorský

    obor DVI4 , 0 ročník, zimní semestr, volitelný

Typ (způsob) výuky

 

Přednáška

39 hod., nepovinná

Vyučující / Lektor

Osnova

  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.

Konzultace v kombinovaném studiu

26 hod., nepovinná

Vyučující / Lektor