Detail předmětu
Teorie programovacích jazyků
TJD Ak. rok 2005/2006 zimní semestr
Základní rysy programovacích jazyků. Možnosti definování sémantiky programovacích jazyků. Lambda kalkul. Denotační sématika. Rozdíl mezi kompilovanými a interpretovanými jazyky. Rozdíl mezi funkcionálními a imperativními jazyky. Základy logických programovacích jazyků. Principy rezoluční metody.
Garant předmětu
Jazyk výuky
Zakončení
Rozsah
- 39 hod. přednášky
Zajišťuje ústav
Získané dovednosti, znalosti a kompetence z předmětu
Schopnost formálně definovat i používat definici sémantiky programovacích jazyků.
Cíle předmětu
Získat hluboké znalosti zejména v oblasti teorie sémantiky programovacích jazyků. Získat schopnosti formálně definovat sémantiku programovacích jazyků.
Požadované prerekvizitní znalosti a dovednosti
formální jazyky a automaty, některé univerzální programovací jazyky na úrovni magisterského studia
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
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
Osnova přednášek
- Význam přepisovacích systémů v informatice. Základní pojmy přepisovacích systémů.
- Využití přepisovacích systémů jako definičních prostředků
- Teorie přepisovacích systémů. Ohraničené a jednoznačně normalizující systémy, kritické dvojice, konfluentní přepisovací systémy.
- Knuth-Bendixův zúplňovací algoritmus.
- Ekvacionální systémy, funkcionální jazyky, logické jazyky.
- Algebraické specifikace. Syntéza funkcionálních programů z algebraických specifikací.
- Grafové přepisovací systémy Přepisování grafů, algebraický přístup, výrazový přístup.
- Kořenové grafy a jejich přepisování.
- Jazyky pro specifikaci grafových přepisovacích systémů (Lean, Dactl).
- Semigrafové gramatiky jako model překladu.
- Denotační sémantika. Způsoby formální definice sémantiky.
- Pojem domény, metodika specifikace domén a modelování typických jazykových konstrukcí.
- Principy objektově orientovaných programovacích jazyků. Způsob implementace.
Průběžná kontrola studia
Hodnocení studia je založeno na bodovacím systému. Pro úspěšné absolvování předmětu je nutno dosáhnout 50 bodů.
Kontrolovaná výuka
pouze přednášky