Analízis és módszerek a generatív metaprogramozás támogatására nagyméretű C++ projektekben
|
|
- Ignác Dudás
- 7 évvel ezelőtt
- Látták:
Átírás
1 Analízis és módszerek a generatív metaprogramozás támogatására nagyméretű C++ projektekben A doktori értekezés tézisei 2014 Mihalicza József jmihalicza@gmail.com Témavezető: Dr. Porkoláb Zoltán, docens Eötvös Loránd Tudományegyetem, Informatika Kar, 1117 Budapest, Pázmány Péter sétány 1/C ELTE IK Doktori Iskola Doktori program: Az informatika alapjai és módszertana A doktori iskola vezetője: Dr. Benczúr András akadémikus A doktori program vezetője: Dr. Demetrovics János akadémikus
2 Tartalomjegyzék Tartalomjegyzék ii 1 Bevezető 1 2 Célok 2 3 A unity build elemzése 3 4 Template metaprogram diagnosztika 4 5 Típusmegőrző heap profilozó C++-hoz 7 6 Kihatás 8 Hivatkozások 8 ii
3 1 Bevezető Generatív programrendszerek A generatív programozás egy megközelítés, melyben gondosan általánosított szoftvermodulok készülnek, majd ezen általánosított modulok konkrét variációit kombináljuk különböző helyzetek speficikus igényeinek kielégítésére. Egy programrendszer generatív, ha generatív programozást használ. Az átmenet az általánosított változatból a konkrét változatba lehet futási idejű, betöltési idejű, összeszerkesztési idejű, fordítási idejű, vagy ezek valamilyen keveréke. Ez az értekezés a fordítási idejű változatra korlátozódik, ahol a programkód részeit a produkciós eszközlánc állítja elő. A generatív programozás gyakori felhasználásai közé tartozik a DRY elv alkalmazása és a generikus szerkezetek. A DRY elv a do not repeat yourself ( ne ismételd önmagad ) rövidítése. Itt a lényeg a konzisztencia. Akármikor is többször szerepel ugyanaz az információ, a konzisztensen tartásuk egy implicit feladat, máskülönben hibák lépnek fel. A DRY nem csak egy változás konzisztens végigvitelének feladatát spórolja meg nekünk. Sok esetben, különösen amire a generatív programozás leginkább jó, egy hosszú, fárasztó, vagy akár emberileg gyakorlatilag kivitelezhetetlen folyamat automatizálható. A generikusok a DRY elv alkalmazásának egy nagyon közvetlen formája. Lehetővé teszik a programozó számára, hogy ugyanazt az algoritmust, vagy adatszerkezetet, vagy nagy programkomponenst egyszer írjon meg egy általános alakban, ami később konkrét helyzetekben újrahasznosítható, a szabad változókat aktuális értékekkel helyettesítve. Azokat a programokat, melyek más programokon dolgoznak, metaprogramoknak hívjuk. Generatív metaprogramozásról akkor beszélünk, ha a generatív programozást metaprogramok valósítják meg. Nagyméretű programrendszerek Objektív definíció nincs arra, hogy mit jelent a nagyméretű. Az általam adott definíció a következő: egy programrendszer nagyméretű, ha egy egyedüli programozó számára nem kivitelezhető, hogy a megvalósítás minden részletét ismerje. A zlib tömörítési könyvtár 13 ezer kódsorból áll 2 szerzővel. A Linux kernel millió kódsor 1316 fejlesztő bevonásával. Daniel Chapman ezt írja [16]: A kernel projekt hosszú ideje akkora méretre nőtt, hogy egyetlen fejlesztő sem lenne képes segítség nélkül megvizsgálni és kijelölni minden egyes változtatást. A fordítási idő egy fontos szempont. Nem ritka, hogy egy nagyméretű rendszer fordítási ideje több óra. A fordítási idő a nemfunkcionális követelmények egy példája. A nemfunkcionális követelmények egy másik kategóriája a futási idejű teljesítmény: sebesség, reszponzivitás, processzorés/vagy memóriaterhelés, kizárólagos erőforrások használata stb. A telje- 1
4 sítményproblémák rendszerint alattomosak. A teljesítménymutatók ritkán romlanak el drasztikusan. Inkább jellemző rájuk, hogy lassú tendenciával fokozatosan romlanak. A kód megértése szintén egyre fontosabb, ahogy a méret nő. Ez a szükséglet minden absztrakciós szinten jelentkezik: jó nevezéktan a forráskód elemeire, design átnézés, főbb architekturális döntések kommunikációja. Ha a kommunikáció nem elégséges, hasonló problémákra szerteágazó megoldások születnek. Ez nem csak inkonzisztens designhoz vezet, hanem tovább növeli a karbantartandó kódbázist, ennek mindazon hosszú távú következményével, melyeket ez a szakasz felsorol. 2 Célok Láttuk, hogy a nagyméretű rendszereknél számos új kérdés merül fel a kisebbekhez képest. Ez természetesen a nagyméretű generatív rendszerekre szintén igaz. A téziseim egyes területekre fókuszálnak. Általános kérdésekre általános válaszok adása helyett a célom készen alkalmazható módszerek, megközelítések nyújtása volt néhány kiválasztott mindennapos ipari problémára. A teljes fordítási idő jelentősen csökkenthető unity builddel, ami egy, a szokásostól nagyon eltérő fordítási megközelítés, ahol az eredetileg külön fordított egységek együtt fordulnak. A célom a unity build nagy C++ projekteken történő alkalmazásának kiértékelése volt, valamint a technika alapjainak megteremtése részletes analízissel. A unity build elég hatékonyan csökkentie a fordítási időt, hogy ez kárpótolja a szokványostól eltérő, ezáltal hibára hajlamos használatát a nyelvnek? A unity build alkalmazása milyen lehetséges mellékhatásokkal jár? Hogyan kerülhetjük el a unity build nemkívánt mellékhatásait? Két évtizede volt, amikor az első template metaprogramot publikálták. Kiderült, hogy a template metaprogramozás (TMP) C++-ban valójában egy Turing-teljes beágyazott funkcionális nyelv. Míg a diagnosztikai funkciók természetes részei a legtöbb programozási környezetnek, ez nem volt igaz a C++ TMP-ra. Még sok év, és a széleskörű használat után sem volt kényelmes eszközkészlet, ami támogatná a TMP-t. A célom módszerek megtalálása volt template metaprogramok ugyanolyan természetes módon történő nyomkövetésére és profilozására, mint a futási idejű programoknál. Létezik megbízható módja információ kinyerésének futó template metaprogram lépéseiről a fordító módosítása nélkül? Milyen módszerek tudnák ugyanazokat a nyomkövető funkcionalitásokat nyújtani TMP-ra, amiket megszoktunk a futási idejű programoknál (lépésenkénti végrehajtás, töréspontok, hívási ve- 2
5 rem)? Milyen módszerek tudnának memóriahasználat és futási idő profilozást nyújtani TMP-ra? A memóriaviselkedés hatékony elemzéséhez egy típusos heap profilozó elengedhetetlen. Más OO nyelvekkel ellentétben a C++ közvetlenül nem támogatja a lefoglalt objektumok típusának követését. A célom teljes megoldás nyújtása volt nagyméretű C++ programok heap profilozására. A fordító módosítása nélkül van-e megbízható mód az allokációk típusinformációinak megőrzésére, hogy azokat C++ heap profilozóban használjuk? Ha részletes információkkal rendelkezünk az alkalmazásunk allokációiról beleértve az objektumtípusokat hogyan tudjuk ezt az információt a heap viselkedés részletes elemzésére használni? Milyen algoritmusok tudják biztosítani egy elemző alkalmazás gördülékenységét és reszponzivitását, ha az elemzett heap viselkedés adatot hosszú programfutásból gyűjtöttük, ezért hatalmas? 3 A unity build elemzése A nyílt forrású könyvtárakon végzett méréseim szerint a feldolgozott forráskód mérete jelentősen nagyobb az érdemi kód méreténél: #include... : #include... érdemi kód +2% preprocesszor ÝÝÝÝÝÝÝÑ % 100% «100% előfeldolgozott include fájlok érdemi kód A unity build több, eredetileg különálló egység egyetlen fordítási egységként történő fordításával kiküszöböli ugyanazon fejlécfájlok különböző forrásegységekbeli többszörös feldolgozását: forrás 1 : forrás n, /. /- script, vagy ÝÝÝÝÝÝÑ manuálisan #include "forrás 1 " : #include "forrás n " összeszerkesztő fordító ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÑ preprocesszor A méréseim megmutatták, hogy ez az egyesítés még akkor is képes jelentősen csökkenteni a fordítási időt, ha a projekt már előfordított fejléceket használ a gyorsabb fordításért. Következésképpen a módszer releváns nagy rendszereknél. Felsoroltam a lehetséges mellékhatásokat, melyeket az eredetileg különálló fordítási egységek egybe #include-olása okoz. Például az eredetileg lokális (static) szimbólumok hirtelen láthatóvá válnak nem kapcsolódó egységekben, vagy lokálisan bevezetett preprocesszor makróknak mellékhatásai lehetnek idegen egységekben. 3 cél
6 Ekvivalenciakritériumok egy halmazát fogalmaztam meg annak meghatásozására, hogy a unity builddel fordított kódnak van-e bármilyen észrevétlen mellékhatása az egyenként fordított változathoz képest: EQ : EQ u ^ EQ t ^ EQ a Az EQ u az egység (unit) szintű konzisztenciát ellenőrzi, biztosítja, hogy ugyanazon egységek forduljanak. EQ t teszteli, hogy a megfelelő modulok tokensorozatai pontosan egyeznek-e a két fordítási változatban. EQ a, a legerősebb ellenőrzés, absztrakt binding fák részstruktúráit hasonlítja, hogy elkerülje az érvényben maradt using deklarációk okozta mellékhatásokat, vagy bármilyen más, alig észrevehető szemantikus különbséget. Tézis 1 (A unity build elemzése). Elemeztem a unity build technikát, és megmértem a hatékonyságát a fordítási idő csökkentését illetően, elsősorban a teljes fordítási időre fókuszálva. Három nyíltforrású könyvtáron végzett esettanulmány alapján meghatároztam a unity build létező projektekre alkalmazásának előnyeit és hátrányait, valamint ajánlott megközelítéseket vezettem le a megvalósítására. Egy kritériumhalmazt definiáltam, mellyel az egyesítés okozta nemkívánt szemantikus változások automatikusan detektálhatók. Levezettem továbbá egy algoritmust ezen ekvivalenciaellenőrzés megvalósítására. 4 Template metaprogram diagnosztika A TMP diagnosztika támogatásához valahogy információt kell kapnunk a fordítótól a template példányosításokról a fordítás során. Unruh prímszámgenerátora egy template metaprogram, ami fordítási időben írja ki a prímszámokat figyelmeztetések formájában. Ez azt jelenti, hogy van egy módszerünk egy template metaprogramból információ kiíratására anélkül, hogy leállítanánk a végrehajtását. Részletesen kidolgoztam ezt a módszert, és egy teljes munkafolyamatot készítettem a fordítás TMP eseményeit leíró pozícióhelyes trace fájl kinyerésére. Az 1. ábra az általam Templightnak elnevezett keretrendszer struktúráját mutatja. A folyamat a forráskódbeli template szerkezetek automatikus azonosításával kezdődik (annotáció). Aztán figyelmeztetést kibocsátó kódrészleteket instrumentálunk minden egyes template definíció elejére és végére. Amikor a fordító példányosít egy template-et, ezek a kódrészletek figyelmeztetést eredményeznek a fordítási kimeneten, ezzel jelezve a template esemény megtörténtét. Ezeket a template eseményeket rekonstruáljuk a fordítási kimenetből, és kiírjuk a trace fájlba. 4
7 eredeti forrás preprocesszor előfeldolgozott forrás #line szűrő fájl/sor leképezés annotáló változatlan előfeldolgozott forrás #line direktívák nélkül annotáció instrumentáló instrumentált kód fordító sor leképezés fordítási üzenetek trace fájl pozícióigazítás eredeti figyelmeztetéselemző fordítófüggetlen fordítófüggő pozícióhelyes trace fájl 1. ábra. Templight vezérlésfolyam. A szaggatott vonal opcionális kapcsolatot jelöl. Tézis 2 (Template metaprogram instrumentálás). Kifejlesztettem egy módszert C++ template metaprogramok instrumentálására. A módszer alapkoncepciója a template szerkezetek mintaalapú felismerése és figyelmeztetést generáló kódrészletek beszúrása. A módszer alapján megvalósítottam egy prototípus keretrendszert, aminek kimenete egy olyan pozícióhelyes trace fájl, mely tartalmaz minden szükséges információt a teljes TMP futás rekonstruálásához. A keretrendszer könnyen adaptálható új fordítási környezetekre. 5
8 Amikor egy ideális TMP nyomkövetőn gondolkodtam, először felsoroltam a futási idejű programok gyakran használt hibakeresési műveleteit. Analógiát találtam a TMP végrehajtás és a futási idejű végrehajtás között, és ezeket a hibakeresési műveleteket leképeztem a TMP-ra. Ezen analógiának megfelelően meghatároztam egy TMP nyomkövető műveleteit. A TMP tulajdonságai alapján (például a hivatkozási átlátszóság, ami abból ered, hogy a TMP egy funkcionális nyelv, ahogyan ez már a 2. szakaszban szerepelt) levezettem, hogy a visszafelé nyomkövetés és közvetlen időugrás műveletek megvalósíthatók egy TMP nyomkövetőben. A hordozhatóbb, 2-es Tézisbeli instrumentálás alapú módszer mellett a teljesebb, de a fordító módosításával járó változatot is tárgyaltam. Három különböző TMP nyomkövető alkalmazást mutattam be: egy IDE kiegészítést [8], egy különálló TMP IDE-t [3], és egy különálló TMP nyomkövetőt [14]. Tézis 3 (Módszerek template metaprogram hibakeresésre). Két módszert fejlesztettem ki C++ template metaprogram nyomkövető megvalósítására. Mindkét módszer trace fájlon alapul, ami leírja a template eseményeket. A nemintruzív adatkinyeréses módszer mellett, ami az 1-es Tézisben szereplő instrumentáló technikát alkalmazza, bemutattam egy másikat, ami a fordító módosításán alapszik, és néhány előnnyel rendelkezik a nemintruzív változattal szemben. Három alkalmazást ismertettem, melyek bemutatják, hogyan alkalmazhatóak a módszereim template hibakereső funkciók megvalósítására. A kutatásomon alapuló egyik megvalósítás de facto sztenderddé válik template metaprogramok hibakeresésére [14, 17, 18, 19, 20]. TMP profilozásra egy létező és három új módszert azonosítottam: FC teljes fordítási idő mérése WO figyelmeztetésgeneráló kódrészletek instrumentálása és folyamaton kívüli időmérés WI figyelmeztetésgeneráló kódrészletek instrumentálása és folyamaton belüli időmérés BI a profilozás beépített támogatása Az FC esetén elemeztem a külön preprocesszálás, mint lehetséges továbbfejlesztés hatásait. Leírtam a BI módszer részleteit, a minimális torzítás elérésére irányuló implementációs megfontolásokkal. Ezután BI módszerrel végzett méréseket mutattam be a WI és WO módszerek különböző szempontjainak, valamint a hibakereső és termékkiadási mód fordítási idejének elemzése céljából. 6
9 Tézis 4 (Módszerek template metaprogram profilozásra). Egy létező és három új módszert azonosítottam C++ template metaprogram profilozók megvalósítására, melyek különböző erősségekkel rendelkeznek. Részletes mérésekkel alátámasztva rámutattam ezen módszerek gyakorlati alkalmazásának fontos aspektusaira. A kutatásomon alapuló egyik megvalósítás de facto sztenderddé válik template metaprogram profilozásra [14, 18, 19, 20]. 5 Típusmegőrző heap profilozó C++-hoz A memóriaprofilozók kulcsfontosságú eszközök a modern objektumorientált programok futási idejű viselkedésének megértéséhez. Bár a C++-hoz hasonló nyelvek erősen építenek a típusokra és osztályokra, a legtöbb C++ memóriaprofilozó nem ad elégséges információt a memóriafoglalások tényleges típusáról. Bemutattam egy típusmergőrző C++ heap profilozó felépítését és adatszerkezeteit. A keretrendszerem a megszokott profilozó funkciókon felül minden heap művelet részletes típusinformációját is szolgáltatja. A fontos implementációs részleteket, valamint a lehetséges csapdákat és azok megoldását egyaránt tárgyaltam. A kód megértését támogatandó egy szűrőgráf lehetőséget ad a felhasználónak tetszőleges lekérdezések meglehetősen kényelmes módon történő összeállítására. A profil eredmény vizsgálatára különböző megjelenítési lehetőségek állnak rendelkezésre. A megoldásom magasan platformfüggetlen, emellett mérsékelt memória- és sebességköltséggel jár. Az idővonal nézet az alkalmazás teljes memóriafoglalását jeleníti meg az idő függvényében. Ez a nézet a gyakorlatban nagyon hasznos, de hatékony algoritmusokat igényel, hogy elbírjon a hatalmas mennyiségű aggregált bejegyzéssel. Valós használati statisztikákat használtam a fő optimalizálási célok meghatározására, és aszimptotikusan optimális algoritmusokat mutattam az idővonal megjelenítésre. A kumulált értékek megjelenítését célzó algoritmusom képes foglalási bejegyzések millióinak, és jócskán feletti megjelenített bejegyzés kezelésére. Esettanulmányként a keretrendszert használtam egy teljesítményhiba megtalálására és javítására egy számomra új és ismeretlen kódbázisban. Tézis 5 (Típusmegőrző heap profilozó). Kifejlesztettem egy módszert típusinformációk megőrzésére C++ heap profilozókban. A módszer platformfüggetlen, és alacsony memóriaköltséggel jár. Optimális algoritmusokat adtam a teljesítménykritikus idővonal nézet megjelenítésére. Egy nyílt forrású szövegszerkesztő teljesítményhibájának beazonosításával és javításával szemléltettem a megközelítés valós projekteken történő alkalmazhatóságát. 7
10 releváns publikációk tézis neve [1] [2] [3] [4] [5] [6] [7] [8] [9] [10][11][12] A unity build elemzése Template metaprogram instrumentálás Módszerek template metaprogram hibakeresésre Módszerek template metaprogram profilozásra Típusmegőrző heap profilozó 6 Kihatás A kutatásom relevanciáját az akadémiai közleményekben található, és a fejlesztői közösségek általi idézések szemléltetik. A publikációimra 14 független idézést találtam. 8 publikációmra 10 munkában további 18 idézés található a kutatótársaimtól. Mindösszesen 32 idézés hivatkozik 9 publikációmra, lefedve mind az öt tézist. A Templar TMP nyomkövető és profilozó [14], ami a TMP diagnosztikai módszereimen alapul, egyre népszerűbb. [18]-ban elérhető egy gdb-szerű parancssoros felület TMP nyomkövetésre. Ez a nyomkövető a Template Instantiation Observert (Template Példányosítás Figyelő) használja, ami a korábbi Templight implementáció egy általánosítása, a clang egy kiegészítése template példányosítási események monitorozására. A clang megfelelő módosításai (Templight trace generálás [19] és a figyelő [20]) várhatóan a fordító hivatalos funkcióivá válnak, ezáltal a módszert de facto sztenderddé teszik. Egyéb fordítók és IDE-k esetén TMP nyomkövetésre és profilozásra vonatkozó funkciókéréseket találtam, melyek a megfelelő publikációimra hivatkoznak. A heap profilozómat a Hungarian C++ Community (Magyar C++ Közösség) a nyitó meetup-témájának [15] választotta. Egy friss munka [21] szerzői a publikációmat az egyetlen profilozóként idézik, amiről tudják, hogy részletes típusinformációt szolgáltat C-hez. Hivatkozások [1] J. Mihalicza, Compile C++ systems in quarter time, in Proceedings of 10th International Scientific Conference on Informatics (Informatics 2009), 2009, pp
11 [2] J. Mihalicza, How #includes affect build time in large systems, in Proceedings of the 8th international conference on applied informatics (ICAI 2010), vol. 2. Eger: BVB Nyomda és Kiadó Kft., 2012, pp [3] Z. Borók-Nagy, V. Májer, J. Mihalicza, N. Pataki, and Z. Porkoláb, Visualization of C++ template metaprograms, in Proceedings of the th IEEE Working Conference on Source Code Analysis and Manipulation, ser. SCAM 10. Washington, DC, USA: IEEE Computer Society, 2010, pp [Online]. Available: [4] Z. Porkoláb, J. Mihalicza, and Á. Sipos, Debugging C++ template metaprograms, in Proceedings of the 5th International Conference on Generative Programming and Component Engineering, ser. GPCE 06. New York, NY, USA: ACM, 2006, pp [Online]. Available: [5] J. Mihalicza, C++ template metaprogramok nyomkövetését segítő programcsomag, Master s thesis, Eötvös Loránd Tudományegyetem, [6] N. Pataki, J. Mihalicza, Z. Szűgyi, V. Májer, and Z. Porkoláb, Features of C++ template metaprograms, in Proceedings of the 8th international conference on applied informatics (ICAI 2010), vol. 2. Eger: BVB Nyomda és Kiadó Kft., 2012, pp [7] Z. Porkoláb, J. Mihalicza, Á. Sipos, and N. Pataki, Templight, a template metaprogram debugger, 2007, poster at European Conference on Object-Oriented Programming (ECOOP 07). [8] Z. Porkoláb, J. Mihalicza, Á. Sipos, and N. Pataki, Templight, a template metaprogram debugger, 2007, demonstration at European Conference on Object-Oriented Programming (ECOOP 07). [9] Z. Prokoláb, J. Mihalicza, N. Pataki, and Á. Sipos, Towards profiling C++ template metaprograms, in Proceedings of the 10th Symposium on Programming Languages and Software Tools (SPLST 07). Eötvös University Press, 2007, pp [10] Z. Porkoláb, J. Mihalicza, N. Pataki, and Á. Sipos, Analysis of profiling techniques for C++ template metaprograms, Annales Universitatis Scientiarum Budapestinensis de Rolando Eötvös Nominatae. Sectio Computatorica, vol. 30, pp ,
12 [11] J. Mihalicza, N. Pataki, and Z. Prokoláb, Compiler support for profiling C++ template metaprograms, in Proceedings of the 12th Symposium on Programming Languages and Software Tools (SPLST 11), oct 2011, pp [12] J. Mihalicza, Z. Porkoláb, and Á. Gábor, Type-preserving heap profiler for C++, in Proceedings of the th IEEE International Conference on Software Maintenance, ser. ICSM 11. Washington, DC, USA: IEEE Computer Society, 2011, pp [Online]. Available: [13] Z. Prokoláb, Z. Borók-Nagy, and J. Mihalicza, Debugging and profiling C++ template metaprograms, presentations_2013/blob/master/thu/tmpdebug_cppnow13.pdf?raw true, May 2013, presentation at C++Now Conference. [14] Z. Prokoláb, J. Mihalicza, and Z. Borók-Nagy, Templight: A C++ template metaprogram debugger and profiler, templight/, [15] J. Mihalicza, Type-preserving heap profiler for C++, http: // Budapest, Hungary, September 2014, presentation at Hungarian C++ Community Meetup. [16] D. Chapman, How to participate in the linux community, linuxfoundation.org/content/23-how-patches-get-kernel, May [17] M. Schulze, Templar: Visualization tool for Templight C++ template debugger traces, Feb [18] S. M. Persson, Templight 2.0: Template instantiation profiler and debugger, October [19] M. Clow, Template tracing patch from Zoltan Porkolab, reviews.llvm.org/d809, May [20] S. M. Persson, Template Instantiation Observer + a few other templight-related changes, October [21] K. Saur, M. Hicks, and J. S. Foster, C-Strider: Type-aware heap traversal for C, May
Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba
Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba Témavezető: Horváth Zoltán és Simon Thompson OTDK 2007, Miskolc Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba OTDK
RészletesebbenTézisfüzet. Metaprogramok alkalmazása er sen típusos objektum-orientált rendszerek kiterjesztésére Zólyomi István
Tézisfüzet Metaprogramok alkalmazása er sen típusos objektum-orientált rendszerek kiterjesztésére Zólyomi István Témavezet : Dr. Porkoláb Zoltán Eötvös Loránd Tudományegyetem Informatika Kar Programozási
RészletesebbenGeneratív programok helyessége
Generatív programok helyessége Doktori értekezés tézisei 2013 Pataki Norbert patakino@elte.hu Témavezető: Dr. Porkoláb Zoltán, egyetemi docens Eötvös Loránd Tudományegyetem, Informatikai Kar, 1117 Budapest,
RészletesebbenGENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok
GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és Függvénysablonok Gyakorlatorientált szoftverfejlesztés C++ nyelven Visual Studio Community fejlesztőkörnyezetben
RészletesebbenOpenCL alapú eszközök verifikációja és validációja a gyakorlatban
OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és
RészletesebbenProgramzás I. - 1. gyakorlat
Programzás I. - 1. gyakorlat Alapok Tar Péter 1 Pannon Egyetem Műszaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 15, 2007 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS)
RészletesebbenBitTorrent felhasználók értékeléseinek következtetése a viselkedésük alapján. Hegedűs István
BitTorrent felhasználók értékeléseinek következtetése a viselkedésük alapján Hegedűs István Ajánló rendszerek Napjainkban egyre népszerűbb az ajánló rendszerek alkalmazása A cégeket is hasznos információval
RészletesebbenA C++ template metaprogramozás és a funkcionális programozás kapcsolata
A C++ template metaprogramozás és a funkcionális programozás kapcsolata Doktori értekezés tézisei 2013 Sinkovics Ábel abel@elte.hu Témavezető: Porkoláb Zoltán, egyetemi docens Eötvös Loránd Tudományegyetem,
RészletesebbenJava I. A Java programozási nyelv
Java I. A Java programozási nyelv története,, alapvető jellemzői Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 02. 12. Java I.: Történet, jellemzők, JDK JAVA1 / 1 Egy kis történelem
RészletesebbenForráskód minőségbiztosítás
Forráskód minőségbiztosítás Digitális Jólét Fórum nemzeti digitális ipar fejlesztése Dr. habil. Ferenc Rudolf Egyetemi docens, SZTE Szoftverfejlesztés Tanszék Tudományos tanácsadó, FrontEndART Kft. Szoftvertermék
RészletesebbenC programozási nyelv
C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György
RészletesebbenVizuális, eseményvezérelt programozás XI.
Vizuális, eseményvezérelt programozás XI ÓE-NIK, 2011 1 Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik Ismeretük szükséges,
RészletesebbenClang Static Analyzer belülről
Clang Static Analyzer belülről Nagy Donát 2015. október 6. Áttekintés 1 Clang Static Analyzer kívülről 2 A statikus elemzés folyamata 3 Az eszköz felépítése 4 Egy checker felépítése Rövid definíciók Clang
RészletesebbenList of Publications (Pánovics János)
List of Publications (Pánovics János) Book 1. Juhász István, Kósa Márk, Pánovics János: C példatár, Panem, Budapest, 2005. Peer-Reviewed Papers 1. Kádek Tamás, Pánovics János: Some Improvements of the
RészletesebbenP-gráf alapú workflow modellezés fuzzy kiterjesztéssel
P-gráf alapú workflow modellezés fuzzy kiterjesztéssel Doktori (PhD) értekezés Tick József témavezető: Dr. Kovács Zoltán Pannon Egyetem Műszaki Informatikai Kar Informatikai Tudományok Doktori Iskola 2007.
RészletesebbenAngolul: Extreme Programming, röviden: XP Agilis módszertan. Más módszertanok bevált technikáinak extrém módú (nagyon jó) használata
Angolul: Extreme Programming, röviden: XP Agilis módszertan. Más módszertanok bevált technikáinak extrém módú (nagyon jó) használata jelentése: gyors, fürge 1990-es évek vége Változás igénye Módszertan-család
Részletesebben2018. február 2. Referált cikkek / Papers in referred proceedings [11], [12].
Publikációs lista Diviánszky Péter 2018. február 2. Folyóirat cikkek / Journal papers [15], [16], [3], [1]. Referált cikkek / Papers in referred proceedings [11], [12]. Konferencia kiadványban megjelent
RészletesebbenVerifikáció és validáció Általános bevezető
Verifikáció és validáció Általános bevezető Általános Verifikáció és validáció verification and validation - V&V: ellenőrző és elemző folyamatok amelyek biztosítják, hogy a szoftver megfelel a specifikációjának
RészletesebbenObjektumorientált paradigma és a programfejlesztés
Objektumorientált paradigma és a programfejlesztés Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Ficsor Lajos (Miskolci Egyetem) prezentációja alapján Objektumorientált
RészletesebbenObjektumorientált paradigma és programfejlesztés Bevezető
Objektumorientált paradigma és programfejlesztés Bevezető Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Ficsor Lajos (Miskolci Egyetem) prezentációja alapján
RészletesebbenTípusbiztos szkriptnyelvek generálása funkcionális beágyazott nyelvekből
Típusbiztos szkriptnyelvek generálása funkcionális beágyazott nyelvekből Horváth Gábor, Kozár Gábor, Szűgyi Zalán 2014. február 7. 1. Bevezetés Ez a cikk az Informatics 2013 konferencián publikált Generating
RészletesebbenA Feldspar fordító, illetve Feldspar programok tesztelése
A Feldspar fordító, illetve Feldspar programok tesztelése [KMOP-1.1.2-08/1-2008-0002 társfinanszírozó: ERFA] Leskó Dániel Eötvös Loránd Tudományegyetem Programozási Nyelvek és Fordítóprogramok Tanszék
RészletesebbenObjektum orientált programozás Bevezetés
Objektum orientált programozás Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 03. 04. OOPALAP / 1 A program készítés Absztrakciós folyamat, amelyben a valós világban
RészletesebbenAbsztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:
Objektum orientált programozás Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 03. 04. OOPALAP / 1 A program készítés Absztrakciós folyamat, amelyben a valós világban
RészletesebbenKLIENS-SZERVER ALAPÚ ERLANG PROGRAMOK TRANSZFORMÁCIÓJA ERLANG OTP SÉMÁRA
ELŐADÁS: KLIENS-SZERVER ALAPÚ ERLANG PROGRAMOK TRANSZFORMÁCIÓJA ERLANG OTP SÉMÁRA Király Roland, serial@aries.ektf.hu EKF Információtechnológiai Tanszék - Matematikai és Informatikai Intézet, Eger Az Erlang
RészletesebbenV. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus
V. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus 1 Az előadás tartalma A GI helye az informatikában Az előadás tartalmának magyarázata A
RészletesebbenESZKÖZTÁMOGATÁS A TESZTELÉSBEN
ESZKÖZTÁMOGATÁS A TESZTELÉSBEN MUNKAERŐ-PIACI IGÉNYEKNEK MEGFELELŐ, GYAKORLATORIENTÁLT KÉPZÉSEK, SZOLGÁLTATÁSOK A DEBRECENI EGYETEMEN ÉLELMISZERIPAR, GÉPÉSZET, INFORMATIKA, TURISZTIKA ÉS VENDÉGLÁTÁS TERÜLETEN
RészletesebbenSZTE Nyílt Forrású Szoftverfejlesztő és Minősítő Kompetencia Központ
UNIVERSITY OF SZEGED SZTE Nyílt Forrású Szoftverfejlesztő és Minősítő Kompetencia Központ Gyimóthy Tibor és Ferenc Rudolf Szegedi Tudományegyetem Szoftverfejlesztés Tanszék Szoftverfejlesztés Tanszék Több
Részletesebben.NET alapú programok minőségének és biztonságának növelése
.NET alapú programok minőségének és biztonságának növelése Doktori értekezés tézisei Pócza Krisztián Témavezető: Dr. Porkoláb Zoltán Eötvös Loránd Tudományegyetem Informatika Doktori Iskola Az informatika
RészletesebbenSzoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs
Szoftver labor III. Dr. Csébfalvi Balázs Irányítástechnika és Informatika Tanszék e-mail: cseb@iit.bme.hu http://www.iit.bme.hu/~cseb/ Tematika Bevezetés Java programozás alapjai Kivételkezelés Dinamikus
Részletesebben2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése
Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,
RészletesebbenProgramozási nyelvek (ADA)
Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 1. előadás Hasznos weboldal http://kto.web.elte.hu Program felépítése Programegységek (program unit) eljárások (procedure)
RészletesebbenOOP. Alapelvek Elek Tibor
OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós
RészletesebbenSZTE Eötvös Loránd Kollégium. 2. Móra György: Információkinyerés természetes nyelvű szövegekből
2010/2011 tavaszi félév SZTE Eötvös Loránd Kollégium 1. Dombi József: Fuzzy elmélet és alkalmazásai 2011. március 3. 19:00 2. Móra György: Információkinyerés természetes nyelvű szövegekből 2011. március
RészletesebbenMechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe
Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével
RészletesebbenIman 3.0 szoftverdokumentáció
Melléklet: Az iman3 program előzetes leírása. Iman 3.0 szoftverdokumentáció Tartalomjegyzék 1. Az Iman rendszer...2 1.1. Modulok...2 1.2. Modulok részletes leírása...2 1.2.1. Iman.exe...2 1.2.2. Interpreter.dll...3
RészletesebbenPublications Zoltán Porkoláb
Publications Zoltán Porkoláb International Journals Károly Tilly, Zoltán Porkoláb: Semantic user interfaces, International Journal of Enterprise Information Systems 6 (1), pp. 29-43 Zoltán Porkoláb: Functional
RészletesebbenBevezetés a Python programozási nyelvbe
Bevezetés a Python programozási nyelvbe 8. Gyakorlat modulok random számok (utolsó módosítás: 2017. aug. 3.) Szathmáry László Debreceni Egyetem Informatikai Kar 2017-2018, 1. félév Modulok Amint a programunk
RészletesebbenMérési struktúrák
Mérési struktúrák 2007.02.19. 1 Mérési struktúrák A mérés művelete: a mérendő jellemző és a szimbólum halmaz közötti leképezés megvalósítása jel- és rendszerelméleti aspektus mérési folyamat: a leképezést
RészletesebbenElemi alkalmazások fejlesztése I.
Steingart Ferenc el adása alapján készítette: Szabóné Nacsa Rozália Integrált fejleszt környezet Linux MS Win* www.kdevelop.org www.bloodshed.net Bevezetés 1 A kdevelop f ablaka Editor és böngész Projektszerkezet
RészletesebbenFunkcionális Nyelvek 2 (MSc)
Funkcionális Nyelvek 2 (MSc) Páli Gábor János pgj@elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar Programozási Nyelvek és Fordítóprogramok Tanszék Tematika A (tervezett) tematika rövid összefoglalása
RészletesebbenPublikációs jegyzék (Pánovics János)
Publikációs jegyzék (Pánovics János) Könyv 1. Juhász István, Kósa Márk, Pánovics János: C példatár, Panem, Budapest, 2005. Referált cikkek 1. Kádek Tamás, Pánovics János: Some Improvements of the Extended
RészletesebbenProgramtervezés. Dr. Iványi Péter
Programtervezés Dr. Iványi Péter 1 A programozás lépései 2 Feladat meghatározás Feladat kiírás Mik az input adatok A megoldáshoz szükséges idő és költség Gyorsan, jót, olcsón 3 Feladat megfogalmazása Egyértelmű
RészletesebbenNagy bonyolultságú rendszerek fejlesztőeszközei
Nagy bonyolultságú rendszerek fejlesztőeszközei Balogh András balogh@optxware.com A cég A BME spin-off-ja A Hibatűrő Rendszerek Kutatócsoport tagjai alapították Tisztán magánkézben Szakmai háttér Hibatűrő
RészletesebbenOktatási környezetek vizsgálata a programozás tanításához
Oktatási környezetek vizsgálata a programozás tanításához Horváth Győző, Menyhárt László Gábor Zamárdi, 2014.11.21. Készült az "Országos koordinációval a pedagógusképzés megújításáért című TÁMOP- Tartalom
RészletesebbenRubin SPIRIT TEST. Rubin firmware-ek és hardverek tesztelése esettanulmány V1.0. Készítette: Hajnali Krisztián Jóváhagyta: Varga József
Rubin firmware-ek és hardverek tesztelése esettanulmány V1.0 Készítette: Hajnali Krisztián Jóváhagyta: Varga József Rubin Informatikai Zrt. 1149 Budapest, Egressy út 17-21. telefon: +361 469 4020; fax:
RészletesebbenSoftware engineering (Software techológia) Bevezetés, alapfogalmak. Történelem 1. Történelem as évek Megoldandó problémák: Fejlesztő: Eszköz:
Software engineering (Software techológia) Bevezetés, alapfogalmak Utolsó módosítás: 2006. 02. 16. SWENGBEV / 1 Történelem 1. 60-as évek Megoldandó problémák: egyedi problémákra kis programok Fejlesztő:
RészletesebbenPodoski Péter és Zabb László
Podoski Péter és Zabb László Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök előnyeit és hiányosságait Kidolgoztunk egy saját megjelenítő
RészletesebbenA PhysioBank adatmegjelenítő szoftvereinek hatékonysága
A PhysioBank adatmegjelenítő szoftvereinek hatékonysága Kaczur Sándor kaczur@gdf.hu GDF Informatikai Intézet 2012. november 14. Célok, kutatási terv Szabályos EKG-felvétel: P, Q, R, S, T csúcs Anatómiai
RészletesebbenBevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés
Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;
RészletesebbenFeldspar: Nyelv digitális jelfeldolgozáshoz
Feldspar: Nyelv digitális jelfeldolgozáshoz Eötvös Loránd Tudományegyetem, Budapest Támogatja: Ericsson, KMOP-1.1.2-08 Feldspar funkcionális beágyazott nyelv Feldspar digitális jelfeldolgozáshoz párhuzamossághoz
RészletesebbenProgramozási nyelvek a közoktatásban alapfogalmak II. előadás
Programozási nyelvek a közoktatásban alapfogalmak II. előadás Szintaxis, szemantika BNF szintaxisgráf absztrakt értelmező axiomatikus (elő- és utófeltétel) Pap Gáborné. Szlávi Péter, Zsakó László: Programozási
RészletesebbenInteraktív, grafikus környezet. Magasszintû alkalmazási nyelv (KAL) Integrált grafikus interface könyvtár. Intelligens kapcsolat más szoftverekkel
Készítette: Szabó Gábor, 1996 Az Az IntelliCorp IntelliCorp stratégiája: stratégiája: Kifinomult, Kifinomult, objektum-orientált objektum-orientált környezetet környezetet biztosít biztosít tervezéséhez,
RészletesebbenÜzleti modellen alapuló webes tudásprezentáció
Üzleti modellen alapuló webes tudásprezentáció Pataki Máté, Micsik András Bevezetés Számos projekt küzd azzal a problémával, hogy a projekt menete során felhalmozott nagy mennyiségű, hasznos információ,
RészletesebbenKinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?
Bevezetés Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések Forráskód Hibajegyzék p2p.wrox.com xiii xiii xiv xiv xvi xvii xviii
RészletesebbenAlgoritmus vizualizáció a tanítási gyakorlatban. Törley Gábor
Algoritmus vizualizáció a tanítási gyakorlatban Törley Gábor pezsgo@inf.elte.hu Mi is ez? Algoritmus működésének illusztrálása, abból a célból, hogy jobban megértsék azt a tanulók Tapasztalat: nehéz tanulni
RészletesebbenBevezetés. Dr. Iványi Péter
Bevezetés Dr. Iványi Péter Programozási készség Számos munka igényel valamilyen szintű programozási készséget Grafikus a képfeldolgozót, Zenész a szintetizátort, Programozó a számítógépet programozza.
RészletesebbenREGINFO feszültség minőség mérő rendszer az E.ON Hungáriánál Szilágyi Ákos 2008. szeptember 11. A fejlesztés okai: Belső igény mérési eredmények központi tárolása, egységes felületen történő megjelenítése
RészletesebbenProgramozási Nyelvek: C++
Programozási Nyelvek: C++ Gyakorló feladatkönyv Umann Kristóf #include "CppStudent.h" int main() { CppStudent *reader = new CppStudent(); reader->readbook(); while(!reader->doesunderstand()) { reader->exercise();
RészletesebbenProgramozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. április 4. Számok rendezése Feladat: Fejlesszük tovább úgy a buborék rendez algoritmust bemutató példát, hogy a felhasználó adhassa meg a
RészletesebbenSzéchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu
Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:
RészletesebbenKódverifikáció gépi tanulással
Kódverifikáció gépi tanulással Szoftver verifikáció és validáció kiselőadás Hidasi Balázs 2013. 12. 12. Áttekintés Gépi tanuló módszerek áttekintése Kódverifikáció Motiváció Néhány megközelítés Fault Invariant
RészletesebbenSzoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom
Szoftver újrafelhasználás (Software reuse) Irodalom Ian Sommerville: Software Engineering, 7th e. chapter 18. Roger S. Pressman: Software Engineering, 5th e. chapter 27. 2 Szoftver újrafelhasználás Szoftver
RészletesebbenJava programozási nyelv
Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék
RészletesebbenObjektum Vezérelt Szoftverek Analízise
Objektum Vezérelt Szoftverek Analízise Ferenc Rudolf és Beszédes Árpád ferenc@inf.u-szeged.hu beszedes@inf.u-szeged.hu Szegedi Tudományegyetem FrontEndART Szoftver Kft. Bevezetés A szoftver rendszerek
RészletesebbenMéréselmélet MI BSc 1
Mérés és s modellezés 2008.02.15. 1 Méréselmélet - bevezetés a mérnöki problémamegoldás menete 1. A probléma kitűzése 2. A hipotézis felállítása 3. Kísérlettervezés 4. Megfigyelések elvégzése 5. Adatok
RészletesebbenLászló Péter. Lehetséges-e az üzleti fókuszú infokommunikációs szolgáltatás menedzsment megvalósítása az állami szférában?
László Péter Lehetséges-e az üzleti fókuszú infokommunikációs szolgáltatás menedzsment megvalósítása az állami szférában? Do more with less. ICT értékének bizonyítása Transzparencia hiánya ICT szolgáltatások
RészletesebbenEseményvezérelt alkalmazások fejlesztése I 11. előadás. Szoftverek tesztelése
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése I 11. előadás Szoftverek tesztelése 2014 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
RészletesebbenProgramozási nyelvek Java
statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály
RészletesebbenElőrenéző és paraméter tanuló algoritmusok on-line klaszterezési problémákra
Szegedi Tudományegyetem Számítógépes Algoritmusok és Mesterséges Intelligencia Tanszék Dr. Németh Tamás Előrenéző és paraméter tanuló algoritmusok on-line klaszterezési problémákra SZTE TTIK, Móra Kollégium,
RészletesebbenC programozás. 1 óra Bevezetés
C programozás 1 óra Bevezetés A C nyelv eredete, fő tulajdonságai 1. Bevezető C nyelv alapelemei többsége a BCPL (Basic Combined Programming Language {1963}) Martin Richards B nyelv Ken Thompson {1970}
RészletesebbenS01-8 Komponens alapú szoftverfejlesztés 2
S01-8 Komponens alapú szoftverfejlesztés 2 Tartalom 1. Komponens megvalósítása: kölcsönhatás modell, viselkedési vagy algoritmikus modell és strukturális modell. 2. Komponens megtestesítés: finomítás és
RészletesebbenGPU Lab. 5. fejezet. A C++ fordítási modellje. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc
5. fejezet A C++ fordítási modellje Grafikus Processzorok Tudományos Célú Programozása Kódtól a végrehajtásig Végrehajtás előtt valamikor létre kell jönnie az adott architektúrára jellemző bináris utasításoknak.
RészletesebbenAndroid Pie újdonságai
Android Pie újdonságai Ekler Péter peter.ekler@aut.bme.hu BME AUT Tartalom Android 9 újdonságok Fejlesztői érdekességek API változások Mit tartogat a jövő? Android 9 újdonságok Testreszabott rendszer Egyszerűbb,
RészletesebbenBevezetés a Programozásba II 4. előadás. Adattípusok hordozhatósága
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 4. előadás 2014.03.03. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Programok
RészletesebbenIonogram releváns területeinek meghatározása és elemzésének automatikus megvalósítása
Ionogram releváns területeinek meghatározása és elemzésének automatikus megvalósítása Előadó: Pieler Gergely, MSc hallgató, Nyugat-magyarországi Egyetem Konzulens: Bencsik Gergely, PhD hallgató, Nyugat-magyarországi
RészletesebbenA Java EE 5 plattform
A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11. 13. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési
RészletesebbenJava és web programozás
Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:
RészletesebbenInterfészek. PPT 2007/2008 tavasz.
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése 2 Már megismert fogalmak áttekintése Objektumorientált
RészletesebbenMiskolci Egyetem Általános Informatikai Tanszék
Software tesztelés Miskolci Egyetem Általános Informatikai Tanszék Software tesztelés SWTESZT / 1 A tesztelés feladata Két alapvető cél rendszerben található hibák felderítése annak ellenőrzése, hogy a
RészletesebbenA tesztelés feladata. Verifikáció
Software tesztelés Miskolci Egyetem Általános Informatikai Tanszék Software tesztelés SWTESZT / 1 A tesztelés feladata Két alapvető cél rendszerben található hibák felderítése annak ellenőrzése, hogy a
RészletesebbenSzoftver-technológia II. Modulok és OOP. Irodalom
Modulok és OOP Irodalom Steven R. Schach: Object Oriented & Classical Software Engineering, McGRAW-HILL, 6th edition, 2005, chapter 7. 2 Modulok és objektumok Modulok Lexikálisan folytonos utasítás sorozatok,
RészletesebbenA KUTATÁS EREDMÉNYEI ZÁRÓJELENTÉS 2004-2006.
ÖNELLENŐRZÉS ÉS FUTÁSIDEJŰ VERIFIKÁCIÓ SZÁMÍTÓGÉPES PROGRAMOKBAN OTKA T-046527 A KUTATÁS EREDMÉNYEI ZÁRÓJELENTÉS 2004-2006. Témavezető: dr. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem
RészletesebbenSZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.
SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.hu Mesterséges intelligencia oktatás a DE Informatikai
RészletesebbenIT ügyfélszolgálat és incidenskezelés fejlesztése az MNB-nél
IT ügyfélszolgálat és incidenskezelés fejlesztése az MNB-nél Molnár László MNB, ITIL Projektvezető Fábián János ICON Professional Services Vezérfonal Az MNB IT működése, a SIP kiváltó okai A projekt módszereinek
RészletesebbenISA szimulátor objektum-orientált modell (C++)
Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált
RészletesebbenLaborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István
Laborgyakorlat 3 A modul ellenőrzése szimulációval Dr. Oniga István Szimuláció és verifikáció Szimulációs lehetőségek Start Ellenőrzés után Viselkedési Funkcionális Fordítás után Leképezés után Időzítési
RészletesebbenEGYÜTTMŰKÖDŐ ÉS VERSENGŐ ERŐFORRÁSOK SZERVEZÉSÉT TÁMOGATÓ ÁGENS RENDSZER KIDOLGOZÁSA
infokommunikációs technológiák EGYÜTTMŰKÖDŐ ÉS VERSENGŐ ERŐFORRÁSOK SZERVEZÉSÉT TÁMOGATÓ ÁGENS RENDSZER KIDOLGOZÁSA Témavezető: Tarczali Tünde Témavezetői beszámoló 2015. január 7. TÉMAKÖR Felhő technológián
RészletesebbenPublikációs lista. Gódor Győző. 2008. július 14. Cikk szerkesztett könyvben... 2. Külföldön megjelent idegen nyelvű folyóiratcikk...
Publikációs lista Gódor Győző 2008. július 14. Cikk szerkesztett könyvben... 2 Külföldön megjelent idegen nyelvű folyóiratcikk... 2 Nemzetközi konferencia-kiadványban megjelent idegen nyelvű előadások...
RészletesebbenBöngészők, böngészőmotorok
Böngészők, böngészőmotorok WebKit, Blink, Servo Elismert fejlesztők: 20+ contributor, committer, reviewer 6. legaktívabb csapat (akadémiában első) K+F: Optimalizálás: JIT, párhuzamosítás, GPU Tesztelés:
RészletesebbenVezetői összefoglaló ÁROP /A A pályázati dokumentáció felépítése
Vezetői összefoglaló ÁROP-11.2. 18/A-2013 A pályázati dokumentáció felépítése Tartalomjegyzék Tartalom Oldal Vezetői összefoglaló 1 Beszámoló a Szegedi Ítélőtábla Minőségirányítási területen végzett fejlesztő
RészletesebbenProgramozás I. gyakorlat
Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt
RészletesebbenWebes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése Bevezetés Célkitűzés, tematika, követelmények A.NET Core keretrendszer Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu
RészletesebbenOperációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED BASH recap, reguláris kifejezések Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor
RészletesebbenMi is volt ez? és hogy is volt ez?
Mi is volt ez? és hogy is volt ez? El zmények: 60-as évek kutatási iránya: matematikai logika a programfejlesztésben 70-es évek, francia és angol kutatók: logikai programozás, Prolog nyelv 1975: Szeredi
RészletesebbenOperációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Reguláris kifejezések - alapok, BASH Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor
RészletesebbenFunkciópont elemzés: elmélet és gyakorlat
Funkciópont elemzés: elmélet és gyakorlat Funkciópont elemzés Szoftver metrikák Funkciópont, mint metrika A funkciópont metrika alapelveinek áttekintése Bonyolultsággal korrigált funkciópont A funkciópont
RészletesebbenMULTIMÉDIA ALAPÚ OKTATÁSI TECHNOLÓGIÁK GYAKORLATI ALKALMAZÁSÁNAK VIZSGÁLATA A KATONAI SZAKNYELVOKTATÁSBAN
Zrínyi Miklós Nemzetvédelmi Egyetem Kossuth Lajos Hadtudományi Kar Hadtudományi Doktori Iskola Tick Andrea MULTIMÉDIA ALAPÚ OKTATÁSI TECHNOLÓGIÁK GYAKORLATI ALKALMAZÁSÁNAK VIZSGÁLATA A KATONAI SZAKNYELVOKTATÁSBAN
RészletesebbenA Code::Blocks fejlesztőkörnyezet
A Code::Blocks fejlesztőkörnyezet A Code::Blocks egy keretrendszer, amely sokféle platformon (Windows, Mac, Linux), elsősorban C/C++ programozási nyelvekhez biztosít kényelmes programfejlesztési környezetet.
RészletesebbenFordítóprogramok. Aszalós László. 2009. szeptember 7.
Fordítóprogramok Aszalós László 2009. szeptember 7. 1. Bemelegítés Honlap: www.inf.unideb.hu/ aszalos/diak.html (Fordítóprogramok, 2009) Jegymegajánló: utolsó hét előadásán. PótZH (csak gyakorlat) vizsgaidőszak
Részletesebben