I014 Funkcionální programování

Fakulta informatiky
jaro 2000
Rozsah
3/0. 3 kr. (plus ukončení). Doporučované ukončení: zk. Jiná možná ukončení: k, z.
Vyučující
RNDr. Libor Škarvada (přednášející)
Garance
prof. RNDr. Mojmír Křetínský, CSc.
Katedra teorie programování – Fakulta informatiky
Kontaktní osoba: RNDr. Libor Škarvada
Předpoklady
I015 Úvod do funkc. progr.
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Mateřské obory/plány
Osnova
  • Kurs přináší pohled na funkcionální jazyky z hlediska jednoduchých matematických formalismů, kterými jsou různé modifikace a rozšíření (typovaného) lambda kalkulu. Věnuje se rovněž problematice implementace interpretů a kompilátorů a optimalizaci výpočtu.
  • Netypovaný a typovaný lambda kalkul. Silná normalizace, Churchova-Rosserova vlastnost.
  • Rekurse, věta o pevném bodě.
  • Jazyk PCF, denotační a operační sémantika, úplná abstrakce, paralelní or.
  • Typy. Problém otypování.
  • Polymorfismus. Predikativní a impredikativní typové systémy.
  • Typové třídy a konstruktorové třídy. Podtypy. Typové systémy pro OOP.
  • Imperativní prvky, vstup/výstup, ošetření výjimek, nedeterminismus, přepisovatelná pole, stav. Pokračování.
  • Monády. Monadický datový typ IO.
  • Implementace funkcionálních jazyků. SECD stroj. Překlad definic podle vzoru, strážených klauzulí, intensionálních seznamů.
  • Grafová redukce. G-stroj. Superkombinátory, vynášení.
  • Optimální redukce, plná lenost, plně líné vynášení.
Literatura
  • FIELD, Anthony J. a Peter G. HARRISON. Functional programming. 1st ed. Wokingham: Addison-Wesley Publishing Company, 1988, 602 s. ISBN 0-201-19249-7. info
  • JONES, Simon L. Peyton. The implementation of functional programming languages. New York: Prentice Hall, 1987, xvi, 445 s. ISBN 0-13-453325-9. info
Metody hodnocení
Kurs je ukončen závěrečnou písemnou zkouškou.
Informace učitele

Termín

Kurs je veden formou přednášek a probíhá v letním semestru v rozsahu 3 jednotky (150 minut) týdně.
Další komentáře
Předmět je vyučován každoročně.
Výuka probíhá každý týden.
Předmět je zařazen také v obdobích léto 1996, léto 1997, léto 1998, jaro 1999, jaro 2001, jaro 2002.