Vissza az Általános Számítástudományi Tanszék kezdôlapjára


Funkcionális programozás

A tárgy célja, hogy betekintést adjon a funkcionális programozási módszer elveibe, matematikai alpjaiba és nyelvi eszközeibe. A nyelvi eszközök használatát Miranda és Haskell nyelven megfogalmazott programok elkészítése során gyakorolják be a hallgatók.


Azonosító:

Szak: Programtervezô matematikus szakon felvehetô tantárgy. Az I/1 informatikai sáv (a programozási nyelvek sáv) része.

Óraszám: 1+1


Elôadás és gyakorlat: Csörnyei Zoltán, Horváth Zoltán, csütörtök 14.00-15.30, 21-es szoba

Számonkérés módja: kollokvium, gyakorlati jegy

Elôfeltétel:

Javasolt félév: IV. vagy V. év során

Követelmények:

Funkcionális programozás nyelvi elemeinek, matematikai hátterének és funkcionális programok kiértékelési módszereinek ismerete. Kisebb programozási feladatok megoldása Mirandában vagy Haskellben.


Tematika

  1. A funkcionális programozási stílus alapelvei: hivatkozási átlátszóság, kiértékelés, normál forma, strictness analízis.
  2. A Lambda kalkulus, mint a funkcionális nyelvek szemantikadefiníciós eszköze.
  3. A Miranda, Haskell nyelv elemei : magasabbrendû függvények, függvénydefiníciók, minták, ôrfeltételek, adatszerkezetek, lokális definíciók, ZF-kifejezések, szûrôk.
  4. Típusrendszerek, polimorf típusok, algebrai típusdefiníciók, absztrakt adattípus, példák.
  5. Interaktív funkcionális programok Mirandában, Haskellben.
  6. A felülrôl lefelé haladó funkcionális programozás, elô- és utófeltételek kifejezése, típuskonstrukciók megfelelôi.
  7. Hatékony kiértékelési módszerek: TRS, GRS.
  8. Párhuzamosság kifejezése funkcionális programozási nyelvekben, példák Concurrent Clean-ben. Kiértékelés párhuzamos környezetben.
  9. Néhány további deklaratív és funkcionális nyelv: Lisp, APL, FP, ML, Hope, adatfolyamnyelvek, stb.


Segédanyagok: