Beágyazott funkcionális programozás

A tantárgy angol neve: Embedded Functional Programming

Adatlap utolsó módosítása: 2009. október 30.

Tantárgy lejárati dátuma: 2015. január 31.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar

Mérnök Informatikus Szak
Villamosmérnöki Szak 

Szabadon választható tantárgy

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIIIJV42   2/0/0/f 2  
3. A tantárgyfelelős személy és tanszék Dr. Hanák Péter,
A tantárgy tanszéki weboldala http://kfarkas.iit.bme.hu/trac/bfp/
4. A tantárgy előadója
Név Beosztás Tanszék, intézet 
Patai Gergely ügyvivő szakértő Egészségügyi Mérnöki Tudásközpont 
Dr. Hanák Péter tud. munkatársIrányítástechnika és Informatika Tanszék
5. A tantárgy az alábbi témakörök ismeretére épít Imperatív programozás, deklaratív programozás
6. Előtanulmányi rend
Kötelező:
NEM ( TárgyTeljesítve("BMEVIIIAV42") )

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

Ajánlott:

Deklaratív programozás

A tantárgyat nem vehetik fel azok, akik már előzőleg teljesítették a VIIIAV42(Beágyazott funcionális programozás) tantárgyat.

7. A tantárgy célkitűzése A tiszta funkcionális programozás, valamint a hozzá kapcsolódó fontos tervezési minták bemutatása a Haskell nyelven keresztül. A beágyazott rendszerek speciális programozási követelményeinek és a funkcionális nyelvek kínálta programozási lehetőségeknek az áttekintése és összevetése. Beágyazott és elosztott rendszerek programozására kifejlesztett funkcionális alapú programozási nyelvek (Hume, Timber, Atom stb.) megismertetése.
8. A tantárgy részletes tematikája
  • Alapfogalmak. Tisztaság, hivatkozási helyfüggetlenség, egyenlőségi érvelés, típuslevezetés (Hindley-Milner féle típusrendszer), algebrai adattípusok, mintaillesztés, függvény mint érték, részlegesen alkalmazott függvény (currying). (2 hét)
  • A Haskell alapjai. Névkonvenciók, deklarációk, kifejezések, alaptípusok, szintaktikai édesítőszerek. Szigorú és lusta kiértékelés, parciális függvény, bottom, végtelen adatszerkezetek, listák, rekurzió. Műveletek listákon, rekurziós minták és alkalmazásaik, fúzió. (2 hét)
  • Típusosztályok, példányosítás, osztálytörvények. Fontos osztályok (egyenlőség, rendezés, számtani műveletek, sorosítás, monoid). (2 hét) 
  • Magasszintű tervezési minták. Funktorok, applikatív funktorok, monádok, kategóriák, nyilak, valamint ezek kapcsolata és alkalmazásai. Mellékhatások monadikus struktúrája. Absztrakt struktúrák kompozíciója, monád transzformerek. Redukálható és bejárható struktúrák. (4 hét)
  • Funkcionális reaktív programozás (FRP). Folytonos jelek, események, jelfüggvények. Monadikus és nyílalapú FRP. (1 hét)
  • A Hume nyelv. Dobozalapú tervezés, statikus költségkorlátok, superstep, doboziteráció. (1 hét)
  • A Timber nyelv. Elsőrangú szinkron és aszinkron eseménykezelők, objektumrendszer, ütemezés. (1 hét)
  • Az Atom nyelv. Szabályhierarchia, őrfeltételek, ütemezés. (1 hét)
9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium) Előadás, konzultáció, önálló feladatmegoldás
10. Követelmények Szorgalmi időszakban: 1 db házi feladat (beadási határidő: 14. oktatási hét). A házi feladatot személyesen kell megvédeni.
11. Pótlási lehetőségek A házi feladat a pótlási héten véglegesíthető.
12. Konzultációs lehetőségek Előzetes egyeztetést követően személyesen, továbbá elektronikus levelezés útján.
13. Jegyzet, tankönyv, felhasználható irodalom A tárgy weboldalán megtalálható az előadások vázlata és egy folyamatosan frissített irodalomjegyzék is.
14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra28
Félévközi készülés órákra16
Felkészülés zárthelyire-
Házi feladat elkészítése16
Kijelölt írásos tananyag elsajátítása-
Vizsgafelkészülés-
Összesen60
15. A tantárgy tematikáját kidolgozta
Név Beosztás Tanszék, intézet 
Patai Gergely ügyvivő szakértő Egészségügyi Mérnöki Tudásközpont 
Dr. Hanák Péter tud. munkatársIrányítástechnika és Informatika Tanszék