| Název: | Teorie programovacích jazyků |
|---|
| Zkratka: | TJD |
|---|
| Ak.rok: | 2012/2013 |
|---|
| Semestr: | zimní |
|---|
| Studijní plán: | |
|---|
| 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./sem | přednáška | sem./cvičení | lab. cvičení | poč. cvičení | jiná |
|---|
| Rozsah: | 39 | 0 | 0 | 0 | 0 |
|---|
| | zkouška | testy | cvičení | laboratoře | ostatní |
|---|
| Body: | 0 | 0 | 0 | 0 | 0 |
|---|
|
|---|
| 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: |
|---|
- 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.
| | Literatura referenční: |
|---|
- 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
- Bird, R. - Walder, P.: Introduction to Functional Programming, Prentice Hall 1988
- Tennent, R., D.: Principles of programming languages, Prentice Hall 1981
| | Literatura studijní: |
|---|
- Peyton Jones S., L.: The Implementation of functional programming languages, Prentice Hall 1986
- 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
| | 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 | | |
|