Název:

Teorie programovacích jazyků

Zkratka:TJD
Ak.rok:2012/2013
Semestr:zimní
Studijní plán:
ProgramOborRočníkPovinnost
VTI-DR-4DVI4-volitelný
Vyučovací jazyk:čeština
Informace veřejné:http://www.fit.vutbr.cz/study/courses/TJD/public/
Informace pro zapsané:http://www.fit.vutbr.cz/study/courses/TJD/private/
Ukončení:zkouška (kombinovaná)
Výuka:
hod./sempřednáškasem./cvičenílab. cvičenípoč. cvičeníjiná
Rozsah:390000
 zkouškatestycvičenílaboratořeostatní
Body:00000
Garant:Hruška Tomáš, prof. Ing., CSc., UIFS
Fakulta:Fakulta informačních technologií VUT v Brně
Pracoviště:Ústav informačních systémů FIT VUT v Brně
 
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ů.
Anotace:
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í.

Získané dovednosti, znalosti a kompetence:
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.
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.
Literatura referenční:
  1. Aho, V. A. - Sethi, R. - Ullmann, J. D. : Compilers - Principles, Techniques, and Tools, Addison - Wesley Publishing Company 1987
  2. Gordon, J., C.: Programming language Theory and its Implementation, Prentice Hall 1988
  3. Bird, R. - Walder, P.: Introduction to Functional Programming, Prentice Hall 1988
  4. Tennent, R., D.: Principles of programming languages, Prentice Hall 1981
Literatura studijní:
  1. Peyton Jones S., L.: The Implementation of functional programming languages, Prentice Hall 1986
  2. Sethi R.: Programming Languages Concepts, Addison Wesley 1989
  3. Nilson U. - Matuszynski J.: Logic, Programming and Prolog, John Wiley 1990
  4. Nielson R.,H. - Nielson F.: Semantics with Applications - A Formal Introduction, John Wiley 1992
Kontrolovaná výuka:
Pouze přednášky. V případě otevření předmětu jako řízeného studia konzultace nad zadanou literaturou.
Průběžná kontrola studia:
diskuze na doktorandských přednáškách, zpracování vlastní tématické práce - eseje