Detail předmětu
Teorie programovacích jazyků
TJD Ak. rok 2008/2009 zimní semestr
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.
Garant předmětu
Jazyk výuky
Zakončení
Rozsah
- 39 hod. přednášky
Zajišťuje ústav
Přednášející
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ů založené na přepisovacích systémech. Získat schopnosti formálně definovat sémantiku programovacích jazyků denotační metodou.
Požadované prerekvizitní znalosti a dovednosti
Nejsou žádné prerekvizity.
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ů.
Metody vyučování
Metody vyučování závisí na způsobu výuky a jsou popsány článkem 7 Studijního a zkušebního řádu VUT.
Kontrolovaná výuka
pouze přednášky