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
- A funkcionális programozási stílus alapelvei:
hivatkozási átlátszóság, kiértékelés, normál forma, strictness analízis.
- A Lambda kalkulus, mint a funkcionális nyelvek szemantikadefiníciós
eszköze.
- 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.
- Típusrendszerek, polimorf típusok, algebrai típusdefiníciók, absztrakt adattípus,
példák.
- Interaktív funkcionális programok Mirandában, Haskellben.
- A felülrôl lefelé haladó funkcionális programozás, elô- és utófeltételek kifejezése, típuskonstrukciók megfelelôi.
- Hatékony kiértékelési módszerek: TRS, GRS.
-
Párhuzamosság kifejezése funkcionális programozási nyelvekben, példák Concurrent Clean-ben. Kiértékelés párhuzamos környezetben.
- Néhány további deklaratív és funkcionális nyelv:
Lisp, APL, FP, ML, Hope, adatfolyamnyelvek, stb.
Segédanyagok:
- Kiss Anita: A funkcionális programozás specifikációt támogató
nyelvi eszközei, Szakdolgozat, 1993.
- Plasmeijer,R.-van Eekelen,M.: Functional Programming and
Parallel Graph Rewriting, Addison-Wesley, 1993.
- van Eekelen-...: Concurrent Clean, Technical Report
no 90-20, November 1990, University of Nijmegen
- Barendregt,H.P.: The Lambda-Calculus, its Syntacs and
Semantics. Amsterdam: North-Holland, 1984.
- Hudak,P.: Conception, Evolution and Application of
Functional Programming Languages, ACM Computing
Surveys, Vol. 21. No. 3. Sept. 1989. 359-411.
- Hudak,P.-Fasel,J.H.: A Gentle Introduction to Haskell.
http://www.cs.yale/edu/~hudak.
- Research Software Limited: Miranda System Manual.
augusta.elte.hu: mira /man
- Peterson,J.-Hammond,K.: Report on the Programming Language Haskell, Version 1.4, 1997. http://www.cs.yale/edu/
- Thomson, S.: Lawful Functions and Program Verification
in Miranda, Science of Computer Programming, Vol.
13, Num. 2-3, May 1990, 181-218.