Detail předmětu

Teorie programovacích jazyků

TJD Ak. rok 2005/2006 zimní semestr

Aktuální akademický rok

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

česky, anglicky

Zakončení

zkouška

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

Nahoru