Detail předmětu

Funkcionální a logické programování

FLP Ak. rok 2005/2006 letní semestr 5 kreditů

Aktuální akademický rok

Praktické aplikace a širší úvod do lambda kalkulu a predikátové logiky v prostředí funkcionálních a logických programovacích jazyků. Jsou diskutovány abstraktní datové typy, použití rekurze a indukce, práce se seznamy a nekonečnými datovými strukturami. Základy programování v jazycích Haskell, Prolog a Goedel: principy jejich implementace.

Garant předmětu

Jazyk výuky

česky

Zakončení

zápočet+zkouška

Rozsah

  • 26 hod. přednášky
  • 12 hod. pc laboratoře
  • 14 hod. projekty

Zajišťuje ústav

Získané dovednosti, znalosti a kompetence z předmětu

Studenti získají základní znalosti a praktické zkušenosti ve funkcionálním a logickém programování, což jsou významní představitelé deklarativního programování. Kromě toho obdrží základní informace o teoretických základech obou paradigmat a způsobu implementace.

Užití a zvládnutí rekurze pro algoritmizaci.

Cíle předmětu

Zvládnutí funkcionálního a logického programování a formálních základů, které jsou při použití obou paradigmat využívány.

Požadované prerekvizitní znalosti a dovednosti

Způsoby zpracování (analýza, vyhodnocení/interpretace/překlad) programovacích jazyků, predikátová logika.

Literatura studijní

  • Thompson, S.: Haskell, The Craft of Functional Programming, ADDISON-WESLEY, 1999, ISBN 0-201-34275-8
  • Nilsson, U., Maluszynski, J.: Logic, Programming and Prolog (2ed), John Wiley & Sons Ltd., 1995
  • Hill, P., Lloyd, J.: The Gödel Programming Language, MIT Press, 1994, ISBN 0-262-08229-2
  • Bieliková, M., Návrat, P.: Funkcionálne a logické programovanie, Vydavateĺstvo STU, Vazovova 5, Bratislava, 2000.

Literatura referenční

  • Thompson, S.: Haskell, The Craft of Functional Programming, ADDISON-WESLEY, 1999, ISBN 0-201-34275-8
  • Nilsson, U., Maluszynski, J.: Logic, Programming and Prolog (2ed), John Wiley & Sons Ltd., 1995
  • Hill, P., Lloyd, J.: The Gödel Programming Language, MIT Press, 1994, ISBN 0-262-08229-2
  • Bieliková, M., Návrat, P.: Funkcionálne a logické programovanie, Vydavateĺstvo STU, Vazovova 5, Bratislava, 2000.
  • Jones, S.P.: Haskell 98 Language and Libraries, Cambridge University Press, 2003, p. 272, ISBN 0521826144

Osnova přednášek

  • Úvod do funkcionálního programování, lambda kalkul
  • Programovací jazyk Haskell, úvod, práce se seznamy
  • Uživatelské datové typy, typové třídy, pole
  • Vstupy/výstupy
  • Praktické úlohy
  • Dokazování ve funkcionálním programování
  • Denotační sémantika, implementace funkcionálních jazyků
  • Prolog, úvod
  • Seznamy, operátor řezu, řazení
  • Datové struktury, řetězce, operátory
  • Stavový prostor, práce s klauzulemi, analýza jazyků
  • Goedel
  • Implementace logických jazyků, CLP, shrnutí, diskuse

Osnova počítačových cvičení

  • Seznámení s prostředím jazyka Haskell (Hugs), jednoduché funkce, rekurze, seznamy
  • Nekonečné datové struktury
  • Uživatelské datové typy, vstupy/výstupy
  • Praktická úloha, samostatná práce
  • Seznámení s prostředím jazyka Prolog, seznamy
  • Praktická úloha, samostatná práce

Průběžná kontrola studia

Student musí během semestru získat alespoň 50% bodů z možného maxima, tj. 20 bodů ze 40.

Kontrolovaná výuka

  • Půlsemestrální zkouška - písemná, formou otázek a úkolů (vyskytují se i otázky s výběrem jedné z nabízených odpovědí), neexistuje náhradní/opravný termín - 20 bodů.
  • Vypracování projektů - 2 projekty, jeden ve funkcionálním a druhý v logickém programovacím jazyce - jednoduché programy, dle zadání - 20 bodů celkem.
  • Závěrečná zkouška - písemná, formou otázek a úkolů (vyskytují se i otázky s výběrem jedné z nabízených odpovědí), 2 opravné termíny - 60 bodů.
Nahoru