| Název: | Programovací jazyky |
|---|
| Zkratka: | PRJ |
|---|
| Ak.rok: | ukončen 2002/2003 |
|---|
| Semestr: | letní |
|---|
| Studijní plán: | |
|---|
| Vyučovací jazyk: | čeština |
|---|
| Informace veřejné: | http://www.fit.vutbr.cz/study/courses/PRJ/public/ |
|---|
| Informace pro zapsané: | http://www.fit.vutbr.cz/study/courses/PRJ/private/ |
|---|
| Kredity: | 6 kreditů |
|---|
| Ukončení: | zápočet+zkouška (písemná) |
|---|
| Výuka: | | hod./sem | přednáška | sem./cvičení | lab. cvičení | poč. cvičení | jiná |
|---|
| Rozsah: | 39 | 12 | 0 | 0 | 14 |
|---|
| | zkouška | testy | cvičení | laboratoře | ostatní |
|---|
| Body: | 50 | 20 | 0 | 0 | 30 |
|---|
|
|---|
| Garant: | Hruška Tomáš, prof. Ing., CSc., UIFS |
|---|
| Přednášející: | Hruška Tomáš, prof. Ing., CSc., UIFS |
| Cvičící: | Cvrček Daniel, doc. Ing., Ph.D., UITS Kolář Dušan, doc. Dr. Ing., UIFS |
|---|
| Fakulta: | Fakulta informačních technologií VUT v Brně |
|---|
| Pracoviště: | Ústav informačních systémů FIT VUT v Brně |
|---|
| Prerekvizity: | |
|---|
| Navazující: | |
|---|
| |
| Cíle předmětu: |
|---|
Osvojit si teoretické základy pro definici sémantiky (významu) konstrukcí užívaných v programovacích jazycích. Získat schopnosti formálně tuto sémantiku definovat a formální definici používat.
Seznámit se se základními modely programovacích jazyků. |
| Anotace: |
|---|
Způsoby definice sémantiky programovacích jazyků: denotační, operační a axiomatická. Lambda kalkul a jeho použití pro denotační sématiku. Formální definice základních typů, struktur a konstrukcí denotační sématikou. Axiomatická sémantika a její použití pro dokazování programů. Příklad axiomatické definice jazyka. Sémantika jazyků pro funkcionální a logické programování.
Základy objektového programování. |
| Získané dovednosti, znalosti a kompetence: |
|---|
Schopnost formálně definovat sématiku programovacích jazyků a používat formální definice v praxi. Schopnost a praktické použití dokazování programů. |
| Osnova přednášek: |
|---|
- Historie vývoje konstrukcí programovacích jazyků.
- Způsoby definice syntaxe a sémantiky.
- Základy netypovaného lambda kalkulu.
- Notace zápisu výrazů, vyhodnocování.
- Rekurzivní funkce.
- Rozsahy platnosti jmen, typová kontrola.
- Datové typy jednoduché a strukturované, ekvivalence typů a polymorfizmus.
- Denotační sémantika.
- Floyd-Hoarova logika.
- Axiomatická sémantika a dokazování programů.
- Volání podprogramů a způsoby předávání parametrů.
- Objektově orientované programování.
- Funkcionální programování, logické programování.
|
| Osnova numerických cvičení: |
|---|
- Základní konstrukce a operace lambda kalkulu.
- Reprezentace základních typů v lambda kalkulu.
- Reprezentace strukturovaných typů v lambda kalkulu.
- Denotační sémantika jednoduchého jazyka.
- Základy Floyd-Hoareovy logiky.
- Dokazování programů.
|
| Osnova ostatní - projekty, práce: |
|---|
- Realizace části sémantické analýzy překladačů různých jednoduchých jazyků v kombinaci s projektem v předmětu Základy překladačů.
|
| Literatura referenční: |
|---|
- Gordon,J.C.: Programming Language Theory and its Implementation, Prentice Hall - Series in Computer Science, Prentice Hall New York 1988, 255 str., ISBN 0-13-730409-9
- Sebesta,R.,W.: Concepts of Programming Languages, Addison Wesley, Massachusetts 1999, 670 str., ISBN 9-780201-385960
|
| Literatura studijní: |
|---|
- Češka,M., Motyčková, L., Hruška,T.: Vyčíslitelnost a složitost, skriptum VUT Brno, Ediční středisko VUT Brno 1992, 217 str., ISBN 80-214-0441-8
|
| Kontrolovaná výuka: |
|---|
Účast na numerických cvičeních. Jde o 14 denní cyklus. Je možné se mimořádně účastnit v druhém týdnu. |
| Průběžná kontrola studia: |
|---|
Test v polovině semestru. Průběžná kontrola řešení projektu vedoucím. |
| Podmínky zápočtu: |
|---|
Nejméně polovina bodů, které lze získat za aktivity během semestru (testy a projekt), tj. 25 bodů. |
| |