Párhuzamos funkcionális programozás a D-Clean nyelvben

Hasonló dokumentumok
Nemzetközi konferencia-kiadványban megjelent lektorált cikk

2018. február 2. Referált cikkek / Papers in referred proceedings [11], [12].

Publications Zoltán Porkoláb

List of Publications (Pánovics János)

A D-Box koordinációs nyelv és a futtató rendszer

P-gráf alapú workflow modellezés fuzzy kiterjesztéssel

Publikációs lista. Gódor Győző július 14. Cikk szerkesztett könyvben Külföldön megjelent idegen nyelvű folyóiratcikk...

Publikációs jegyzék (Pánovics János)

Mi is volt ez? és hogy is volt ez?

A KUTATÁS EREDMÉNYEI ZÁRÓJELENTÉS

Generatív programok helyessége

Előrenéző és paraméter tanuló algoritmusok on-line klaszterezési problémákra

1. Katona János publikációs jegyzéke

KLIENS-SZERVER ALAPÚ ERLANG PROGRAMOK TRANSZFORMÁCIÓJA ERLANG OTP SÉMÁRA

Ács Péter. Béres Csaba Zoltán Filó Csilla.: E-neighbourhood, azaz a hipertér lokális perspektívái in: Kultúra és Közösség 2003/1

Várterész Magda publikációs listája

Publikációs lista. Dr. Molnárka-Miletics Edit Széchenyi István Egyetem Matematika és Számítástudományi Tanszék

Thékes István. Publikációs lista. Thékes, István (2014): The development of an English as a foreign language vocabulary test.

JÓVÁHAGYÁS. szervezet. Név Dr. Szakonyi Lajos KPI Oktatási Minisztérium

Szimbólumfeldolgozó rendszerek leírási bonyolultsága - Klasszikus és nem-klasszikus számítási modellek

.NET alapú programok minőségének és biztonságának növelése

Publikációk. Libor Józsefné dr.

Hughes, M.- Dancs, H.( 2007) (eds): Basics of Performance Analysis, Cardiff- Szombathely, Budapest

műszaki tudomány doktora 1992 Beosztás: stratégiai tanácsadó, tudományos tanácsadó Munkahelyek: Nokia -Hungary kft Veszprémi Egyetem

A C++ template metaprogramozás és a funkcionális programozás kapcsolata

és alkalmazások, MSc tézis, JATE TTK, Szeged, Témavezető: Dr. Hajnal Péter

MULTIMÉDIA ALAPÚ OKTATÁSI TECHNOLÓGIÁK GYAKORLATI ALKALMAZÁSÁNAK VIZSGÁLATA A KATONAI SZAKNYELVOKTATÁSBAN

Az európai kutatás nyílt hozzáférését biztosító infrastruktúra. Karácsony Gyöngyi Debreceni Egyetem Egyetemi és Nemzeti Könyvtár

TÁVOKTATÁSI TANANYAGOK FEJLESZTÉSÉNEK MÓDSZERTANI KÉRDÉSEI

Curriculum Vitae. 1 Personal Information: 2 Education and training: 3 PhD study and scientific qualifications:

PUBLIKÁCIÓS ÉS ALKOTÁSI TEVÉKENYSÉG ÉRTÉKELÉSE, IDÉZETTSÉG Oktatói, kutatói munkakörök betöltéséhez, magasabb fokozatba történı kinevezéshez.

List of publications Almási Béla, University of Debrecen

2005. évi OTKA zárójelentés: OTKA T Vezető kutató: Dr. Horváth Zoltán

Szlávi Péter: Szakmai önéletrajz

Nyugat-magyarországi Egyetem Sopron, Cházár tér 1., P Épület, Erzsébetkert. University of West-Hungary

Tudományos munkatárs (MTA TK PTI)

PÁNTYA RÓBERT MESTERSÉGES INTELLIGENCIA ELEMEKKEL TÁMOGATOTT PROGRAMOZÁS OKTATÁSA

Szakdolgozat, diplomamunka és TDK témák ( )

Pécsi Tudományegyetem Közgazdaságtudományi Kar Regionális Politika és Gazdaságtan Doktori Iskola

Publikációs lista Szabó Szilárd

2004 Nyugat Magyarországi Egyetem, Faipari Mérnöki Kar Okleveles Könnyűipari Mérnök

ZAJÁCZ EDIT publikációs lista

Type of activity Field or subject Target group Number of participants

alkalmazásfejlesztő környezete

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Eliza Hajnalka Bodor-Eranus

Horizont 2020 keretprogram Magyar pályázati eredmények és lehetőségek

Mérnök informatikus (BSc) alapszak levelező tagozat (BIL) / BSc in Engineering Information Technology (Part Time)

Publikációk. Könyvek, könyvfejezetek:

Mérnök informatikus mesterszak mintatanterve (GE-MI) nappali tagozat/ MSc in, full time Érvényes: 2011/2012. tanév 1. félévétől, felmenő rendszerben

Erlang programok transzformációja bonyolultsági mérőszámok alapján

B/16. számú melléklet Önéletrajz sablon

oklevél száma: P-1086/2003 (summa cum laude) A disszertáció címe: Integrálegyenletek és integrálegyenl½otlenségek mértékterekben

Kétdimenziós mesterséges festési eljárások. Hatások és alkalmazások

Drótposta: ; ; Honlapom:

Fókuszban a minőségfejlesztés Az oktatók szerepe a felsőoktatás nemzetköziesítésében

Komponens alapú programozás Bevezetés

YANG ZIJIAN GYŐZŐ 杨子剑

PUBLIKÁCIÓS LISTA MAGYAR NYELVEN, LEKTORÁLT FOLYÓIRATBAN MEGJELENT:

DR. KOKOVAY ÁGNES. Személyes információk. Születési hely, idő: május 30. Várpalota. Képzettség

Módszer köztes tárolókat nem tartalmazó szakaszos működésű rendszerek ütemezésére

Önéletrajz. Személyi adatok. Szakmai tapasztalat. Időtartam szeptember. Főbb tevékenységek és feladatkörök

Bokor Judit PhD. Szerz, cím, megjelenés helye, Szerz, cím, megjelenés helye, Szerz, cím, megjelenés. helye, PUBLIKÁCIÓ. Könyv, idegen nyelv

A szemantikus világháló oktatása

PÁLYÁZAT. a SZÉCHENYI ISTVÁN EGYETEM MŰSZAKI TUDOMÁNYI KAR KUTATÁSI FŐIRÁNY pályázati felhívásához. 1. A pályázó kollektíva vezetőjének adatai:

A TANTÁRGY ADATLAPJA

SZOFTVEREK A SORBANÁLLÁSI ELMÉLET OKTATÁSÁBAN

INTERAKTÍV MATEMATIKA MINDENKINEK GEOGEBRA MÓDRA. Papp-Varga Zsuzsanna ELTE IK, Média- és Oktatásinformatika Tanszék

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba

2nd Hungarian National and International Lifelong Learning Conference Proceeding

Az Európai Bizottság mellett működő ESF (European Science Foundation) a. kilencvenes évek közepe óta támogatja és szervezi a European Social Survey

A MaCS konferencia első tizenöt éve

Köztesréteg adatbiztonsági protokollok megvalósítására

Bodor-Eranus Eliza Hajnalka

Projektmunka és tehetséggondozás az informatikában

Tézisfüzet. Metaprogramok alkalmazása er sen típusos objektum-orientált rendszerek kiterjesztésére Zólyomi István

Oktatói önéletrajz Dr. Balogh Zsolt György

A Feldspar fordító, illetve Feldspar programok tesztelése

Elosztott rendszerekre implementált funkcionális nyelvek - PRML projekt

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Dodé Réka (ELTE BTK Nyelvtudomány Doktori IskolaAlkalmazott Alknyelvdok 2017 nyelvészet program) február 3. 1 / 17

FELADATMEGOLDÁSI SZOKÁSAINAK VIZSGÁLATA. Baranyai Tünde

Összetett szoftverrendszerek fejlesztése Innovatív szoftver prototípusok a Codespring Mentorprogram keretein belül

A MAGYAR H2020 SZEREPLÉS TAPASZTALATAI

CORBA Áttekintés. Mi a CORBA? OMG and OMA. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Az időskori balesetek terhe

Europass Önéletrajz. Személyi adatok. Szanyi Gyöngyi. Tanulmányok. Szakmai tapasztalat. Vezetéknév / Utónév

Neme nő Születési dátum 26/10/1988 Állampolgárság magyar

Szakdolgozat, diplomamunka, TDK és PhD témák Témavezető: Dr Tóth László ( )

Teljesen elosztott adatbányászat alprojekt

HALLGATÓI KÉRDŐÍV ÉS TESZT ÉRTÉKELÉSE

Augusztusban 1,3% volt az infláció (Fogyasztói árak, augusztus)

Kozma László publikációs és szakmai tevékenysége

Komponens modellek. 3. Előadás (első fele)

Pacemaker készülékek szoftverének verifikációja. Hesz Gábor

A tudományos munkák jegyzéke

A Java EE 5 plattform

SZAKMAI ÖNÉLETRAJZ. Alapadatok: Név: E -mail: Telefonszám: Dr. Dévényi Márta devenyi@ktk.pte.hu /

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Átírás:

Párhuzamos funkcionális programozás a D-Clean nyelvben A doktori értekezés tézisei Zsók Viktória http://zsv.web.elte.hu/ 2012 zsv@elte.hu Témavezető: Prof. Dr. Horváth Zoltán Eötvös Loránd Tudományegyetem, Informatikai Kar H-1117 Budapest, Pázmány Péter sétány 1/C. Informatikai Doktori Iskola Iskolavezető: Prof. Dr. Benczúr András Doktori program: Az informatika alapjai és módszertana Programvezető: Prof. Dr. Demetrovics János Támogatta a TÁMOP 4.2.1./B-09/1/KMR-2010-0003 pályázat.

Bevezetés A párhuzamos és elosztott programozás a funkcionális programozás egy intenzíven kutatott sajátos területe. A funkcionális programozási nyelvek olyan modern szoftvertervezői és fejlesztői eszközök, melyek megfelelnek a mai információs társadalom magas szintű elvárásainak. Egy funkcionális program természeténél fogva rendelkezik párhuzamos tulajdonságokkal. Ezt kiaknázva megbízható párhuzamos nyelvi eszközöket hozhatunk létre. A szakirodalomban nyomon követhető a párhuzamosság kifejezésének állandó keresése a funkcionális paradigmában. Különböző próbálkozásokkal találkozhatunk, melyek az alacsonyszintű nyelvi elemektől a magasabb szintűig terjednek. A lusta kiértékelésű nyelvek esetén azonban ez továbbra is egy nyitott kérdés. A Clean lusta kiértékelésű funkcionális programozási nyelv fejlődési történetében a párhuzamos programozás több szakaszán ment át. Kezdetben a nyelv egy transzputerhez illesztett verzióját valósították meg, majd annotációkat, dinamikus objektumokat, TCP/IP és Object IO nyelvi elemeket használtak, míg napjainkban web alapú taszkokat alkalmaznak. Disszertációm kutatási kérdése: hogyan tudjuk megvalósítani a funkcionális programok, ezen belül a Clean függvények párhuzamos végrehajtását és kommunikációját. Kutatásom legfontosabb témáit a magas absztrakciós szintű nyelvi elemek folyamatos keresése vezérelte. Konkrétan, a Clean nyelv egy olyan kiterjesztését hoztam létre, mely funkcionális programok elosztott programozását és vezérlését teszi lehetővé. Ez a kutatási irány a nyelvi elemek kifejezőerejének növelését eredményezi. Célkitűzések Dolgozatom legfontosabb céljai a következők voltak: 1. tanulmányozzam és tovább finomítsam a már létező párhuzamos funkcionális nyelvi elemeket, 2. meghatározzak a Clean nyelvhez illeszthető párhuzamos kiértékelési stratégiákat, és Clean programokat számítógép-klaszteren összekötő kommunikációs csatornákat, 3. megtervezzem a D-Clean magas szintű vezérlési nyelvet a Clean kiterjesztéseként, valamint definiáljam a D-Clean leképezését a D-Box köztesszintű nyelvre, 4. leírjam a D-Clean végrehajtható szemantikáját Clean függvények formájában, 5. megvalósítsak párhuzamos algoritmusvázakat (szkelonokat) a D-Clean nyelvi elemeinek segítségével és megvizsgáljam szemantikus helyességüket. 1

A disszertáció felépítése A disszertáció hét fejezetből áll. A dolgozat bevezetésében összefoglalom az eredményeket, majd a kapcsolódó kutatásokat leíró fejezet bemutatja a kutatás hátterét és felsorolja a disszertáció kérdéseihez illeszkedő szakirodalmi hivatkozásokat különböző szempontok szerint, majd rámutat a disszertáció kutatási eredményei és néhány kulcsfontosságú irodalmi hivatkozás közötti hasonlóságra és eltérésre. A párhuzamos kiértékelési stratégiákkal foglalkozó fejezet a kezdeti kutatási eredményt, a párhuzamos stratégiákat határozza meg, melyek segítségével befolyásolhatjuk a függvények kiértékelésének sorrendjének és mélységét. A Clean-CORBA interfész fejezetben megvizsgáltam a Clean programok kommunikációs lehetőségeit számítógép-klaszteren. A D-Clean vezérlési nyelvet megadó fejezet az alapvető nyelvi elemeket és a D-Box nyelvi elemeinek szerkezetét definiálja, valamint a két nyelv közötti leképezéseket írja le. Párhuzamos tulajdonságok elérésére a Clean tisztán funkcionális lusta kiértékelésű programozási nyelvet jól meghatározott nyelvi konstrukciókkal terjesztettem ki. A végrehajtható szemantikát megadó fejezet célja, hogy a D-Clean nyelvi elemek jelentését Clean típusok és függvények segítségével határozza meg. Az algoritmusvázakat bemutató könyvtár leírja az elosztott funkcionális programozást D-Clean nyelvben. A nyelv bevezetésének fő célja a párhuzamos számítási minták (szkeletonok) létrehozása volt. A disszertáció következtetések megfogalmazásával zárul és további kutatási lehetőségeket mutat be. Bár a D-Clean elosztott rendszernek az a célja, hogy magas szintű nyelvi elemek segítségével funkcionális programokat vezéreljen számítógép-klaszteren, a modellt más programozási nyelvekben is alkalmazni lehet párhuzamos számítások végrehajtására. Minden fejezet először bemutatja az adott fejezet kutatási témájának motivációját és az alkalmazott kutatási módszereket, majd a témához kapcsolódó esettanulmányokat és kiértékelésüket írja le. A fejezetek az új nyelvi elemek párhuzamosságot kifejező erejére összpontosítanak. Az eredményeket lektorált folyóiratcikkekben publikáltam. A következőkben négy fő tézisben (az első tézis két részből áll) összefoglalom az eredményeket és az újdonságaikat. Az eredmények összefoglalása Tézis 1.1. Annotációk segítségével bevezettünk párhuzamos kiértékelési stratégiákat a Clean funkcionális nyelvbe. Lineáris adatszerkezeteken alkalmazott összetett párhuzamos stratégiákat hoztam létre. A stratégiák a funkcionális programok dinamikus viselkedését határozzák meg. A legfontosabb jellemzőjük, hogy magasabb rendű függvényekként szétválasztják a párhuzamos kiértékelést az algoritmust leíró résztől. Az általunk létrehozott par Clean párhuzamos értékelési stratégia a kifejezések kiértékelésének sorrendjét és mélységét befolyásolja. A par nyelvi elem fontos szerepet tölt be az összetett típusú stratégiák esetén is, mivel használatával kevesebb 2

idő alatt magasabb fokú kiértékelést lehet elérni. Az összetett stratégiák esettanulmánya egy párhuzamos elemenkénti feldolgozási módszert mutat be. A tézisben megfogalmazott új eredmények: a kifejezések párhuzamos kiértékelési sorrendjének és mélységének megváltoztatása, valamint összetett párhuzamos stratégiák létrehozása a Clean nyelv sajátos függvénykiértékelési gráfátíró technikájára építve. A tézis legfontosabb publikációja a [10] folyóiratcikk: Horváth Z., Zsók V., Serrarens, P., Plasmeijer, R.: Parallel Elementwise Processable Functions in Concurrent Clean, Mathematical and Computer Modelling Vol. 38, Issues 7-9, Elsevier, 2003, pp. 865-875. Tézis 1.2. Létrehoztam típusbiztonságos kommunikációs csatornákat Clean kliens programok összekapcsolására számítógép-klaszteren Clean-CORBA objektumok használatával. A második kutatási fázisban kommunikációs csatornákat illesztettem a Clean funkcionális programokhoz. A programok összekapcsolása köztesréteg szolgáltatások segítségével történik. Az absztrakt kommunikációs réteg megtervezésénél és végrehajtásánál CORBA szerver objektumokat használtam. A Clean-CORBA interfész a szerver-kliens kommunikációt szolgálja. Az elosztott funkcionális komponensek közötti kommunikáció aszinkron. Az esettanulmány az adatcsatorna algoritmusvázát írja le, mely a csatorna-alapú kommunikációs szemléletmód legfőbb jellemzőit is bemutatja. A CORBA alapú technika alkalmazásával nyilvánvalóvá vált, hogy új, magasabb rendű nyelvi elemek tervezésére van szükség annak érdekében, hogy tisztább és átláthatóbb kódot hozzunk létre, miközben a végrehajtás részleteit elrejtjük és a hibalehetőségek számát csökkentjük. A funkcionális programok a számítógép-klaszteren megvalósított csatornákon alapuló kommunikációja újszerű a párhuzamos funkcionális programozásban. A tézis legfontosabb publikációja: [6]. Horváth Z., Varga Z., Zsók V.: Clean-CORBA Interface for Parallel Functional Programming on Clusters, In: Pekka Kilpeläinen, Niina Päivinen (eds.): Proceedings of the Eighth Symposium on Programming Languages and Software Tools, SPLST 03, Kuopio, Finland, June 17-18, 2003, Report A/2003/1, University of Kuopio, pp. 127-136. Kapcsolódó publikációk: [30], [9], [2]. Tézis 2. Megterveztem a D-Clean nyelvet, amely a Clean lusta kiértékelésű, tisztán funkcionális programozási nyelv kiterjesztése osztott vezérlési nyelvi elemekkel. A D-Clean kiterjesztés magas szintű nyelvi elemeket tartalmaz funkcionális számítási csomópontok vezérlésére elosztott környezetben, számítógép-klaszteren. A D-Clean konstrukciók D-Box dobozokat generálnak, amelyeket kommunikációs csatornák kapcsolnak össze. A D-Clean nyelv az adatfolyamot is vezérli az elosztott hálózatban. A csatornák által szállított adatfolyamok típusosak és értékeiket az input-output protokollok szabályai szerint dol- 3

gozzák fel a dobozok. A D-Clean nyelv segítségével a programozó elosztott számítási mintákat tervezhet és meghatározhatja a számítási gráfot. A D-Box nyelv Petri hálókon alapuló köztes vezérlési nyelv, mely a dobozokat kommunikációs csatornákkal köti össze jól meghatározott protokollok alapján. A D-Clean nyelvi elemek előnye, hogy a párhuzamos funkcionális alkalmazásokat az elosztott környezet és a köztesréteg szolgáltatások részleteinek ismerete nélkül lehet fejleszteni, elvonatkoztatva a technikai részletektől. Az elosztott számítások többrétegű multiparadigma elvű környezetet használnak, amelyben a legmagasabb szinten a D-Clean vezérlési nyelv elemei a tisztán funkcionális programozási részfeladatok számítási csomópontjait irányítják. A szétosztás előre meghatározott számítási mintákkal, algoritmusvázakkal történik, melyek függvényekkel, típusokkal és adatfolyamokkal paraméterezhetőek. A D-Clean programok D-Box programokat generálnak, melyek a vázak alacsonyabb szintű leírását jelképezik és melyek a számítási csomópontokat Clean funkcionális programokként hajtják végre. A D-Clean nyelvi elemek leképezése D-Box programokra jól definiált átírási szabályok alapján történik. A bevezetett D-Clean vezérlési nyelv elemeinek absztrakciós szintje újszerű. A nyelvi elemek magasabb szinten vonatkoztatnak el az alacsony szintű konstrukcióktól mint a korábban létrehozott párhuzamos kiértékelési stratégiák és kommunikációs csatornák, ezáltal a nyelv jobban megfelel a funkcionális programozási stílusnak. A nyelv a Clean funkcionális programok D-Box köztes nyelv segítségével történő elosztásának és vezérlésének új, magasabb szintű elosztási módszerét nyújtja jól definiált kommunikációs csatornák és számítási csomópontok, dobozok használatával. A tézis legfontosabb publikációja a [4] folyóiratcikk: Horváth Z., Hernyák Z., Zsók V.: Coordination Language for Distributed Clean, Acta Cybernetica, Vol 17 (2), Institute of Informatics, University of Szeged, Szeged, Hungary, 2005, pp. 247-271. Kapcsolódó publikációk: [22], [24], [1]. Tézis 3. Meghatároztam a D-Clean nyelv operációs szemantikáját futtatható formában Clean típusok és függvények segítségével D-Clean programok helyességének és tulajdonágainak vizsgálatára és bizonyítására. A D-Clean és a D-Box vezérlési nyelvek célja a magasabb szintű folyamatleírás és kommunikáció vezérlése számítógép-klaszteren, azonban a gyakorlati tapasztalatok és a két nyelv használata elosztott programfejlesztésnél azt mutatták, hogy hasznos lenne egy olyan eszköz, mely előzetesen automatikusan megjeleníti az osztott számítási gráfot. Ezért egy új modellezést alkalmaztam és a D-Clean elosztott rendszer egy új szemléletét adtam meg szemantikai leírásokkal Clean függvények formájában. A hangsúly elsősorban a D-Clean nyelvi elemek operációs szemantikájának futtatható leírásán van. A D-Clean elemek leírása elvonatkoztat a valódi elosztott környezettől, figyelmen kívül hagyva a technikai részleteket, a dobozok és a csatornák generálását. A végrehajtható szemantikai eszköz a D-Clean vezérlési nyelv egyszerűbb alkalmazását, valamint a D-Clean programok grafikus megjelenítését szolgálja. 4

Jól meghatározott elosztott számítások esetén a várható párhuzamosság, a párhuzamosítás lehetséges megvalósítása (a valós elosztott rendszerhez hasonlóan) a dobozok és a csatornák grafikus megjelenítésével előre jelezhető. A grafikus megjelenítés és a végrehajtható szemantika hasznos támogatást nyújt a valós elosztott számítási minták tervezésekor. A második D-Clean szemantikus modell C++ sablonokat, templateket használ. Az C++ templatek erős típusrendszere garantálja a modell helyességét és magasabb hatásfokot biztosít futásidőben. Az új nyelv maga után vonja az új szemantika leírását. A végrehajtható szemantika létrehozása is viszonylag új a szakirodalomban. A tézis legfontosabb publikációi a [32] és [35] folyóiratcikkek: Zsók V., Koopman, P., Plasmeijer, R.: Generic Executable Semantics for D-Clean, In: Porkoláb Z. et al. (eds.): Proceedings of the Third Workshop on Generative Technologies, WGT 2011, ETAPS 2011, Saarbrücken, Germany, March 27, 2011, Electronic Notes in Theoretical Computer Science, ENTCS Vol. 279, Issue 3, Elsevier, December 2011, pp. 85-95. Zsók V., Porkoláb Z.: Rapid Prototyping for Distributed D-Clean using C++ Templates, In: Annales Universitatis Scientiarum Budapestinensis de Rolando Eötvös Nominatae, Sectio Computatorica, Eötvös Loránd University, Budapest, Hungary, 2012, Vol. 37, pp. 19-46. Kapcsolódó publikációk: [36], [33], [34], [21]. Tézis 4. Párhuzamos algoritmusvázakat, úgynevezett szkeletonokat terveztem és implementáltam az osztott környezetben az új nyelvi elemek használatával. Ellenőriztem a szkeletonok ekvivalenciáját az osztott rendszer és a futtatható szemantikai eszköz segítségével. A D-Clean vezérlési nyelv bevezetésének fő célja a párhuzamos számítási vázak meghatározása volt, melyekkel megmutatható, hogy a nyelv megfelel elosztott funkcionális programok megvalósítására számítógép-klaszteren. Ezért klasszikus elosztott funkcionális számítási vázakat, szkeletonokat terveztem a D-Clean nyelv használatával. Számos D-Clean programnál nagyfokú gyorsulást kaptunk. Egy elosztott számítási gráf tényleges párhuzamossága számos tényezőtől függ, mint például a csatornák létrehozásának sorrendje, egy csatorna kommunikációs költsége, az adatok lekérdezésének vagy tárolásának sebessége a csatornákon. Néhány jól ismert szkeletont két szempont szerint, a szemantikai helyesség és az elosztott számítások vezérlése szerint ellenőriztem. Az algoritmusvázak kétféle ellenőrzése és összehasonlítása a létrehozott szkeleton-könyvtár újdonságát jelképezik. A tézis legfontosabb publikációja a [25]: Zsók V., Hernyák Z., and Horváth, Z.: Designing Distributed Computational Skeletons in D- Clean and D-Box. In: Horváth Z. (ed.): Central European Functional Programming School, CEFP 2005, First Summer School, Budapest, Hungary, July 4-15, 2005, Revised Selected Lectures, LNCS Vol. 4164, Springer-Verlag, 2006, pp. 223-256. Kapcsolódó publikációk: [35], [22], [24], [23], [5], [26], [27]. 5

Összefoglalás A funkcionális programozási nyelvek területén napjaink legfontosabb kutatási témája a párhuzamosság kifejezése. Kutatásom elején megismerkedtem a funkcionális programok párhuzamosításának módszereivel. Két fontos módszert alkalmaztam a Clean tisztán funkcionális, lusta kiértékelésű nyelvben: a kiértékelési stratégiák módosítását és a Clean-CORBA kommunikációs csatornák bevezetését. Mivel mindkét módszer alacsony szintű nyelvi elemeket használ, magasabb absztrakciós szintű megvalósítást kerestem. Ezért létrehoztam a D-Clean osztott vezérlési programozási nyelvet a Clean nyelv kiterjesztéseként. A nyelv lehetővé teszi a párhuzamos algoritmusvázak (szkeletonok) könnyebb fejlesztését és a D-Box köztes nyelv segítségével Clean kliens programok vezérlését számítógép-klaszteren. Végrehajtható szemantikával és szkeletonok mérési eredményeivel bizonyítottam hasznosságát. Az eredményeket számos folyóiratcikkben publikáltam. References [1] Hernyák Z., Horváth Z., Zsók V.: Design of Language Elements for Dynamic Distributed Computation of Clean Expressions on Clusters, In: Loidl, H-W. (ed.): Proceedings of Fifth Symposium on Trends in Functional Programming, TFP 2004, München, Germany, November 25-26, 2004, Ludwig-Maximilians Universität, München, Germany, pp. 257 270. [2] Hernyák Z., Horváth Z., Zsók V.: Clean-CORBA Interface Supporting Pipeline Skeleton, In: Csőke L. et al (eds.): Proceedings of 6th International Conference on Applied Informatics, ICAI 2004, Eger, Hungary, January 27-31, 2004, B.V.B. Press, Vol. I., pp. 191 200. [3] Horváth Z., Csörnyei Z., Lövei L., Zsók V.: Functional Programming Concepts in Computer Science Education, In: Hudák S., Kollár J. (eds.): Proceedings of the Seventh International Scientific Conference on Electronic Computers and Informatics, ECI 2006, September 20-22th 2006, Košice-Herlány, 2006, pp. 174 179. [4] Horváth Z., Hernyák Z., Zsók V.: Coordination Language for Distributed Clean, Acta Cybernetica, Vol 17 (2), Institute of Informatics, University of Szeged, Hungary, 2005, pp. 247 271. [5] Horváth Z., Hernyák Z., Zsók V.: Implementing Distributed Skeletons using D-Clean and D-Box, In: Butterfield, A. (ed.): Proceedings of the 17th IFL 2005, Dublin, Ireland, September 19-21, 2005, Trinity College Dublin, pp. 1 16. [6] Horváth Z., Varga Z., Zsók V.: Clean-CORBA Interface for Parallel Functional Programming on Clusters, In: Pekka Kilpeläinen, Niina Päivinen (eds.): Proceedings of the Eighth Symposium on Programming Languages and Software Tools, SPLST 03, Kuopio, Finland, June 17-18, 2003, Report A/2003/1, University of Kuopio, pp. 127 136. [7] Horváth Z., Zsók V.: CEEPUS Network for Computer Science Education, Keynote talk, In: Bollin, A., Bouchachia, A. (eds.): First Computer Science and Mobility Workshop 2009, Proceedings CSMW 09, Alpen-Adria-Universiät Klagenfurt, Austria, 9-10 April, 2009, pp. 5 9. [8] Horváth Z., Zsók V.: International Cooperation in Computer Science, Proceedings of International Technology, Education and Development Conference, INTED 2007, Valencia, Spain, March 7th-9th, 2007, IATED, Valencia, 2007, 8 pages on CD. 6

[9] Horváth Z., Zsók V., Hernyák Z.: Implementing Pipeline Skeleton in Clean using CORBA Channels, Proceedings of the Workshop on Multiparadigm Programming with Object-Oriented Languages, MPOOL 2004, Workshop #11 at 18th ECOOP 2004, University of Oslo, Oslo, Norway, June 15, 2004, 6 pages. [10] Horváth Z., Zsók V., Serrarens, P., Plasmeijer, R.: Parallel Elementwise Processable Functions in Concurrent Clean, Mathematical and Computer Modelling Vol. 38, Issues 7-9, Elsevier, 2003, pp. 865 875. [11] Králik B., Zsók V., Istenes Z.: Distributed Functional Programming for the Navigation of Robots, In: Pena, R., van Eekelen, M. (eds.): Draft Proceedings of the 12th TFP 2011, Madrid, May 16-18, 2011, Technical Report SIC-07/11, Universidad Complutense de Madrid, Spain, pp. 162 171. [12] Porkoláb Z., Zsók V.: Teaching multiparadigm programming based on object-oriented experiences, Teaching Mathematics and Computer Science, Vol. 5 (1), Institute of Mathematics and Informatics, University of Debrecen, Debrecen, Hungary, 2007, pp. 171 182. [13] Porkoláb Z., Zsók V.: Essential Knowledge for Multiparadigm Programming, In: Bohanec, M. et al (eds.): Proceedings of the 10th International Multiconference Information Society, IS 2007, Ljubljana, Slovenia, 8-12 October, 2007, Volume A, pp. 279 282. [14] Porkoláb Z., Zsók V.: Connection between Software Paradigms and Metrics Usage, In: Zajc, B., Trost, A. (eds.): Proceedings of the Sixteenth International Electrotechnical and Computer Science Conference, ERK 2007, Portorož, Slovenia, 24-26 September, 2007, Slovenska sekcija IEEE, Volume B, pp. 34 37. [15] Porkoláb Z., Zsók V.: Teaching Multiparadigm Programming Based on Object-Oriented Programming, 10th Workshop TLOOC 2006 at ECOOP 2006, Nantes, France, 3rd July, 2006, Umea University, Sweden, 8 pages. Summary: ECOOP 2006 Workshop Reader, Nantes, France, July 3-7, 2006, LNCS 4379, Springer Verlag, 2007, pp. 146 156. [16] Porkoláb Z., Pataki N., Sipos Á., Zsók V., M. Heričko, A. Živkovič: Application of OO metrics to estimate.net project software size, In: Kovács E. et al (eds.): Proceedings of 7th ICAI 2007, Eger, Hungary, January 28-31, 2007, B.V.B. Press, Vol. II., pp. 293 299. [17] Sipos Á., Zsók V.: EClean An Embedded Functional Language, In: Porkoláb Z. et al. (eds.): Proceedings of the First Workshop on Generative Technologies, WGT 2008, ETAPS 2008, Budapest, Hungary, April 5, 2008, ENTCS Vol. 238, Issue 2, Elsevier, June 2009, pp. 47 58. [18] Sipos Á., Zsók V.: EClean An Embedded Functional Language, In: Porkoláb Z. et al (eds.): Workshop on Generative Technologies, WGT 2008, Satellite workshop at ETAPS 2008, Budapest, Hungary, April 5, 2008, pp. 1 12. [19] Sipos Á, Zsók V., Porkoláb Z.: Meta<Fun> Towards a Functional-Style Interface for C++ Template Metaprograms, In: Frentiu, M. et al. (eds.): Studia Universitatis Babeş-Bolyai, Informatica, Vol. LIII, Number 2, Cluj-Napoca, 2008, pp. 55 66. [20] Sipos Á., Porkoláb Z., Pataki N., Zsók V.: Meta<Fun> Towards a Functional-Style Interface for C++ Template Metaprograms, In: Chitil, O. (ed.): Proceedings of the 19th IFL 2007, Freiburg, Germany, 27-29 September, 2007, Technical Report No. 12-07 September, 2007, Computing Laboratory, University of Kent, Canterbury, Kent, pp. 489 502. [21] Zsók V.: D-Clean Semantics for Generating Distributed Computation Nodes, In: Porkoláb Z. et al. (eds.): Workshop on Generative Technologies, WGT 2010, Satellite workshop at ETAPS 2010, Paphos, Cyprus, March 27, 2010, pp. 77 84. 7

[22] Zsók V., Hernyák Z., Horváth, Z.: Improving the Distributed Elementwise Processing Implementation in D-Clean, In: Horváth Z., Kozma L, Zsók V. (eds.): Proceedings of the 10th Symposium on Programming Languages and Software Tools SPLST 2007, Dobogókő, Hungary, June 14-16, 2007, Eötvös University Press, 2007, pp. 256 264. [23] Zsók V., Hernyák Z., Horváth Z.: Distributed Computation on Cluster using D-Clean and D-Box, Extended abstract, In: Davis, K., Quintino, T., Striegnitz, J. (eds.): 5th Workshop on POOSC 06 at 20th ECOOP 2006, Nantes, France, 3rd July, 2006, 3 pages. Summary: ECOOP 2006 Workshop Reader, Nantes, France, July 3-7, 2006, Final Reports, LNCS 4379, Springer Verlag, 2007, pp. 141 145. [24] Zsók V., Horváth Z., Hernyák Z.: Distributed Elementwise Processing in D-Clean, In: Nilsson, H. (ed.): Seventh Symposium on Trends in Functional Programming, TFP 2006, Nottingham, UK, 19-21 April, 2006, The University of Nottingham, pp. 378 386. [25] Zsók V., Hernyák Z., and Horváth, Z.: Designing Distributed Computational Skeletons in D-Clean and D-Box. In: Horváth Z. (ed.): Central European Functional Programming School, CEFP 2005, First Summer School, Budapest, Hungary, July 4-15, 2005, Revised Selected Lectures, LNCS Vol. 4164, Springer-Verlag, 2006, pp. 223 256. [26] Zsók V., Hernyák Z., Horváth Z.: Distributed Pattern Design in D-Clean, In: Vene V., Meriste M. (eds.): Proceedings of the Ninth Symposium on Programming Languages and Software Tools, SPLST 2005, Tartu, Estonia, 13-14 August, 2005, Tartu University Press, 2005, pp. 220 234. [27] Zsók V., Hernyák Z., Horváth Z.: Distributed Pattern Design in D-Clean, Central European Functional Programming School, CEFP 2005, ELTE, Budapest, Hungary, July 4-15, 2005, Lecture Notes, 33 pages, http://plc.inf.elte.hu/cefp/cefp2005/download/dclean_dbox_ lecturenotes.pdf. [28] Zsók V., Horváth Z.: Intensive Programmes in Functional Programming, In: Morazán, M.T. et al. (eds.): The International Workshop on Trends in Functional Programming in Education, TFPIE 2012, St. Andrews, Scotland, June 11, 2012, pp. 1 5. [29] Zsók V., Horváth Z.: Experiences and Challenges in International Higher Education, Proceedings of International Conference of Education, Research and Innovation, ICERI 2008, Madrid, Spain, 17th-19th November, 2008, IATED, 2008, 8 pages on cd. [30] Zsók V., Horváth Z., Varga Z.: Functional Programs on Clusters, In: Striegnitz, J., Davis, K. (eds.): Proceedings of the Workshop POOSC 03 at ECOOP 2003, Darmstadt, Germany, July 22, 2003, Technical Report FZJ-ZAM-IB-2003-09, Forschungszentrum Jülich, Germany, July 2003, pp. 93 100. Summary: ECOOP 2003 Workshop Reader, Darmstadt, Germany, July 21-25, 2003, Final Reports, LNCS 3013, Springer Verlag, 2004, pp. 11 16. [31] Zsók V., Juhász I. (eds.): Poster Session, In: Frohner Á. (ed.): Object-Oriented Technology, ECOOP 2001 Workshop Reader: Workshops, Panel and Posters, Budapest, Hungary, June 18-22, 2001, Proceedings, LNCS Vol. 2323, Springer-Verlag, 2002, pp. 213 223. [32] Zsók V., Koopman, P., Plasmeijer, R.: Generic Executable Semantics for D-Clean, In: Porkoláb Z. et al. (eds.): Proceedings of the Third Workshop on Generative Technologies, WGT 2011, ETAPS 2011, Saarbrücken, Germany, March 27, 2011, ENTCS Vol. 279, Issue 3, Elsevier, December 2011, pp. 85 95. 8

[33] Zsók V., Koopman P., Plasmeijer R.: Generic Executable Semantics for D-Clean, In: Porkoláb Z. et al (eds.): 3rd Workshop on Generative Technologies, WGT 2011, Satellite workshop at ETAPS 2011, Saarbrücken, Germany, March 27, 2011, pp. 1 12. [34] Zsók V., Koopman, P., Plasmeijer, R.: An Executable Semantics for D-Clean, In: Hage, J. (ed.): Preproceedings of the 22nd Symposium on Implementation and Application of Functional Languages, IFL 2010, Alphen aan den Rijn, September 1-3, 2010, Technical Report UU-CS-2010-020 August, 2010, Utrecht University, The Netherlands, pp. 173 179. [35] Zsók V., Porkoláb Z.: Rapid Prototyping for Distributed D-Clean using C++ Templates, Annales Universitatis Scientiarum Budapestinensis de Rolando Eötvös Nominatae, Sectio Computatorica, Eötvös Loránd University, Budapest, Hungary, 2012, Vol. 37, pp. 19 46. [36] Zsók V., Porkoláb Z.: The Distributed D-Clean Model Revisited by Templates, ICNAAM 2011 - SCLIT 2011, Halkidiki, Greece, 19-25 September 2011, In: Theodore E. Simos et al. (eds.): AIP Conference Proceedings, American Institute of Physics, September 2011, Vol. 1389, pp. 877 880. Könyvek (szerk.): [37] Zsók V., Horváth Z., Plasmeijer R., (eds.): Central European Functional Programming School, Fourth Summer School, CEFP 2011, Budapest, Hungary, June 14-24, 2011, Revised Selected Lectures, LNCS Vol. 7241, Springer Verlag, 2012, 533 p. [38] Page, R., Horváth Z., Zsók V. (eds.): Trends in Functional Programming, TFP 2010, Revised Selected Papers, LNCS Vol. 6546, Springer Verlag, 2011, 215 p. [39] Horváth Z., Zsók V., Achten, P., Koopman, P. (eds.): Trends in Functional Programming, Volume 10 (ISBN: 978-1-84150-405-6), Intellect Ltd., Bristol, United Kingdom, 2010, 192 p. [40] Horváth Z., Plasmeijer R., Zsók V. (eds.): Central European Functional Programming School, Third Summer School, CEFP 2009, Komárno, Slovakia, May 24-30, 2009, Revised Selected Lectures, LNCS Vol. 6299, Springer Verlag, 2010, 391 p. [41] Horváth Z., Plasmeijer R., Soós A., Zsók V. (eds.): Central European Functional Programming School, Second Summer School, CEFP 2007, Cluj-Napoca, Romania, June 23-30, 2007, Revised Selected Lectures, LNCS Vol. 5161, Springer Verlag, 2008, 303 p. [42] Chitil, O., Horváth Z., Zsók V. (eds.): Implementation and Application of Functional Languages, 19th International Symposium, IFL 2007, Freiburg, Germany, September 27-29, 2007, Revised Selected Papers, LNCS Vol. 5083, Springer Verlag, 2008, 275 p. [43] Horváth Z., Zsók V., Butterfield A. (eds.): Implementation and Application of Functional Languages, 18th International Symposium, IFL 2006, Budapest, Hungary, September 4-6, 2006, Revised Selected Papers, LNCS Vol. 4449, Springer Verlag, 2007, 272 p. [44] Horváth Z., Zsók V., Achten, P., Koopman, P. (eds.): Tenth Symposium on Trends in Functional Programming, TFP 2009, Komárno, Slovakia, June 2-4, 2009, ELTE Eötvös Kiadó (ISBN 978-963-284-076-5), Budapest, 2009, 327 p. [45] Horváth Z., Kozma L., Zsók V. (eds.): Proceedings of the 10th Symposium on Programming Languages and Software Tools, SPLST 2007, Dobogókő, Hungary, June 14-16, 2007, ELTE Eötvös Kiadó (ISBN: 978-963-463-925-1), Budapest, 2007, 491 p. [46] Horváth Z., Zsók V. (eds.): Proceedings of the 18th International Symposium on Implementation and Application of Functional Programming Languages, IFL 2006, Budapest, Hungary, 4-6 September 2006, ELTE IK TR 2006-S01 (ISBN: 963-463-876-7), Budapest, 2006, 517 p. 9

[47] Zsók V. (ed.): XXVII. OTDK: Országos Tudományos Diákköri Konferencia Informatika Tudományi Szekció, Budapest, 2005. március 21-23., Konferencia-kiadvány, ELTE IK (ISBN: 963-463-742-6), Budapest, 2005, 153 p. Könyvfejezetek: [48] Zsók V., Tejfel M.: Párhuzamos nyelvi elemek (pp. 500-559); Zsók V., Tejfel M., Horváth Z.: Párhuzamos kiértékelés és elosztott programok (pp. 625-634), In: Nyékyné Gaizler J. (ed.) et al: Programozási nyelvek (ISBN: 963-9301-47-7), Budapest, Kiskapu Kiadó, 2003. [49] Csepregi Sz., Zsók V.: Eszközök és nemzetközi programozás, In: Nyékyné Gaizler J. (ed.) et al: Java 2 útikalauz programozóknak 1.3 (ISBN: 963-4634-86-9) Budapest, ELTE TTK Hallgatói Alapítvány, 2001, Vol. I., pp. 134-145. [50] Zsók V.: A java.awt, java.util, java.text, java.rmi csomagok referenciája, In: Nyékyné Gaizler J. (ed.) et al: Java 2 referencia 1.3 (ISBN: 963-4634-86-9), Budapest, ELTE TTK Hallgatói Alapítvány, 2001, pp. 5-43, pp. 234-260, pp. 334-368. [51] Zsók V.: A java.rmi csomag referenciája, In: Nyékyné Gaizler J. (ed.) et al: Java 2 útikalauz programozóknak (ISBN: 963-4633-05-6), Budapest, ELTE TTK Hallgatói Alapítvány, 1999, Vol. III., pp. 227-253. [52] Zsók V.: Típusok és kifejezések (pp. 35-90), Taszkok (pp. 309-332), In: Nyékyné Gaizler J. (ed.) et al: Az Ada95 programozási nyelv, Egyetemi tankönyv, Budapest, ELTE Eötvös Kiadó, 1999. Magyar nyelvű publikációk: [53] Porkoláb Z., Kozsik T., Zsók V.: Új szoftverparadigmák nyelvi támogatása: a jelen oktatása - a holnap technológiája (Programming Language Support for New Software Paradigms: Present Education - Future Technology), In: Pethő A., Herdon M. (szerk.): Informatika a felsőoktatásban 2005, Debrecen, 2005. augusztus 24-26., Debreceni Egyetem, Informatikai Kar, 2005, 5 p. [54] Horváth Z., Csörnyei Z., Lövei L., Zsók V.: Funkcionális programozás témakörei a programtervező képzésben (Functional Programming in Computer Science Education), In: Pethő A., Herdon M. (szerk.): Informatika a felsőoktatásban 2005, Debrecen, 2005. augusztus 24-26., Debreceni Egyetem, Informatikai Kar, 2005, 7 p. [55] Zsók V., Horváth Z., Tejfel M.: Párhuzamos funkcionális programozás (Parallel Functional Programming), In: Arató P., Herdon M. (szerk.): Informatika a felsőoktatásban 2002, Debrecen, 2002. augusztus 28-30., Debreceni Egyetem, Informatikai Kar, 2002, pp. 1085 1094. [56] Hegedűs H., Horváth Z., Zsók V.: Haskell és a Clean nyelv összehasonlító elemzése (Comparative Analysis of Haskel and Clean), In: Arató P., Herdon M. (szerk.): Informatika a felsőoktatásban 2002, Debrecen, 2002. augusztus 28-30., Debreceni Egyetem, Informatikai Kar, 2002, pp. 1075 1084. 10