HELYESSÉGBIZONYÍTÓ ESZKÖZÖK ALKALMAZÁSA FUNKCIONÁLIS PROGRAMOK VIZSGÁLATÁRA 1
|
|
- Pál Juhász
- 5 évvel ezelőtt
- Látták:
Átírás
1 HELYESSÉGBIZONYÍTÓ ESZKÖZÖK ALKALMAZÁSA FUNKCIONÁLIS PROGRAMOK VIZSGÁLATÁRA 1 VERIFICATION OF FUNCTIONAL PROGRAMS USING THEOREM PROVERS Tejfel Máté ELTE Informatikai Kar Programozási Nyelvek és Fordítóprogramok Tanszék Összefoglaló Az ELTE programtervező matematikus, illetve az újonnan bevezetett programtervező informatikus képzésében jelentős szerepet kap a funkcionális nyelvek oktatása. A funkcionális nyelven elkészített programok formális helyességvizsgálatával azonban csak az informatikai doktori iskola keretében ismerkedhetnek meg az érdeklődő doktori hallgatók. Elmondható, hogy napjainkban egyre fokozódó igény mutatkozik helyes programok előállítása iránt és a jelenleg széles körben alkalmazott minőségjavító technikák (tesztelés, szimuláció) már viszonylag kisméretű szoftvertermékek esetén sem képesek ezt az igényt maradéktalanul ellátni. Ezért felmerült az igény, hogy a jobb képességű, érdeklődő egyetemi hallgatók számára bevezessünk egy olyan tantárgyat, amely helyes programok előállításának lehetőségeivel (helyességvizsgálat, programszintézis), illetve nagyrészt funkcionális programok helyességbizonyításával és az ehhez használható eszközök rövid bemutatásával foglalkozik. Ennek okán hoztuk létre 2006-ban a Helyességbizonyító eszközök alkalmazása funkcionális programok esetén címet viselő speciálkollégiumot. A tárgy keretében a hallgatók először megismerkednek a programhelyesség fogalmával és a biztosítására szolgáló módszerekkel, majd egyegy kiválasztott eszköz segítségével, példákon keresztül megvizsgálják az adott módszer működését és lehetőségeit. Végezetül pedig részletesen megismerik a Clean nyelvű funkcionális programok helyességbizonyítására szolgáló Sparkle eszközt. Kulcsszavak helyességbizonyítás, funkcionális programozás Abstract The education of functional programming plays an important role in the informatics trainings of ELTE. However courses about verification of functional programming were available only for our PhD students. Since the needs for creating sound programs increase gradually a new special course was created in 2006 for high quality master students with title Verification of functional programs. The course presents methods make possible to increase the program quality, demonstrates examples for tools of these methods and introduces partially the Sparkle theorem prover which is dedicated for the Clean functional language. Keywords verification, functional programming 1 A Deák Ferenc ösztöndíj támogatásával 1
2 1. Bevezető Az ELTE programtervező matematikus képzésében több éve jelentős szerepet kap a funkcionális nyelvek oktatása [4]. A téma fontosságát jelzi, hogy a funkcionális programozáshoz kötődő tantárgyak beépültek a bolognai folyamat végrehajtása során kialakított programtervező informatikus képzés tananyagába is, illetve néhány, korábban csak az MSc hallgatók számára meghirdetett tárgy átkerült a BSc képzésbe, sőt egyes szakirányokon bevezető jelleggel már az elsőévesek számára is oktatunk funkcionális programozást. A tárgykör oktatása során, a funkcionális nyelvek elemeinek tárgyalásakor több nyelv (Miranda, Haskell, Clean) elemeit mutatjuk be példákon keresztül, ezáltal is kifejezésre jutatva, hogy elsősorban a funkcionális programozási stílus, illetve a modern funkcionális programozási nyelvekben előforduló közös nyelvi elemek megismerése a cél, nem pedig egy konkrét nyelv kimerítő tárgyalása. Első lépésben az a fő célunk, hogy a hallgatók megismerkedjenek a funkcionális programozási stílussal, és gyakorlatot szerezzenek a fontosabb nyelvi elemek használatában. A továbbiakban részletesen tárgyaljuk a funkcionális programozás imperatív nyelvekétől lényegesen eltérő számítási modelljét és bemutatjuk az implementációs technikák részleteit is. A funkcionális program végrehajtása valójában átírási lépések sorozatának végrehajtását jelenti a kezdeti kifejezésből kiindulva. Egy-egy redukciós lépésben egy redukálható részkifejezésben, a redexben szereplő függvényhívás helyettesítődik a függvény megadott kifejezésével, a formális és aktuális paraméterek megfeleltetése mellett. A funkcionális nyelven írt programok végrehajtási modellje minden esetben egy átíró rendszer, melyben az egyes rész-kifejezések átírásának sorrendje a végeredményre nincs hatással, a sorrend legfeljebb azt befolyásolja, hogy az átírási lépéssorozattal eljutunk-e a végeredményig. 2. Az oktatott tantárgy A funkcionális programok helyességvizsgálatával foglalkozó Helyességbizonyító eszközök alkalmazása funkcionális programok esetén címet viselő speciálkollégiumot ban hoztuk létre elsősorban azon negyed-ötödéves, jobb képességű hallgatók részére, akik tagjai az ELTE Eötvös József Collegiumában működő informatikai műhelynek. A tárgy keretében a hallgatók megismerkednek a programhelyesség fogalmával, a program minőségét javító módszerekkel, mint a tesztelés és a szimuláció, illetve olyan módszerekkel, amelyekkel a program helyessége biztosítható, mint a modell ellenőrzés, a tételbizonyítás és a programszintézis. Ezután egy-egy kiválasztott eszköz segítségével, példákon keresztül megvizsgálják az adott módszer működését, lehetőségeit. Az előadáson a leírt módszerekhez kapcsolódóan a következő eszközöket tekintjük át: modellellenőrzés: NuSMV [2], programszintézis: B method [1], helyességbizonyítás: Isabelle-Hol [7]. Végül a helyességvizsgálati módszerek általános áttekintése után a hallgatók részletesen megismerik a Clean funkcionális nyelvhez készített Sparkle [5, 6] helyességbizonyító eszközt, annak axiómarendszerét és a bizonyítás során alkalmazható levezetési szabályait. Ennek során 2
3 különös figyelmet fordítunk a Clean nyelv lusta kiértékelési stratégiája miatt bevezetett speciális szabályokra. Megismerkedhetnek az eszköz egy lehetséges kiterjesztésével is, melynek segítségével temporális jellegű tulajdonságok is bizonyíthatók Clean nyelvű programokra. Jellegéből adódóan a tárgyat viszonylag kevés számú hallgató (félévente nagyjából 8-10 fő) veszi fel. A sikeres teljesítéshez a hallgatóknak adott programok tulajdonságait kell bebizonyítaniuk beadandó feladatként. Az eddigi félévek során a tárgyat felvettek mintegy 90% sikeresen elvégezte a tárgyat, jellemzően ötös érdemjeggyel. 3. Programminőség javító módszerek Napjainkban egyre fontosabb problémává válik a programok helyessége, azaz bizonyos felhasználói, tervezői követelményeknek való megfelelése. Ez a megfelelés a program tulajdonságain múlik, azaz a helyességellenőrzés során a program tulajdonságait kell megvizsgálnunk. A jelenleg legelterjedtebb minőségjavító módszerek, a tesztelés és a szimuláció nem alkalmasak a helyesség teljes mértékű biztosítására. A két módszer közötti különbség, hogy a tesztelés magára a programra alkalmazható, míg a szimuláció annak valamely absztrakt modelljére. Mindkét módszer azt vizsgálja, hogy a rendszer adott bemeneti adatok esetén az elvárt válaszokat eredményezi-e, ebből adódóan már kisebb méretű programok esetén sem képesek az összes lehetséges esetet lefedni, viszont költséghatékonyak és sok hibát képesek megtalálni. Ugyancsak a program egy absztrakt modelljén működik a modell ellenőrzés, amely teljes keresést végez az állapottéren, így megvizsgálva, hogy a kérdéses tulajdonság fennáll-e az adott programra, illetve ellenkező esetben ellenpéldát szolgáltat. Működéséből adódóan a módszer csak véges lehetséges állapothalmaz esetén alkalmazható, viszont ekkor pozitív válasz esetén bármilyen bemenő adat mellett garantálja a tulajdonság teljesülését. Ezen módszer alkalmazásakor szakértői tudást csak az absztrakt modell előállítása igényel, maga az ellenőrzési folyamat automatikus. A tételbizonyítás is absztrakt modellen alkalmazható, a módszer során a modellből és a megadott axiómákból kiindulva logikai levezetési szabályok segítségével, emberi közreműködéssel kell bebizonyítani a tulajdonságok fennállását. A módszer előnye, hogy nincs megkötés a vizsgált programra, hátránya, hogy mind a modell, mind a bizonyítás elkészítése magas fokú (matematikai, logikai) szakértelmet igényel, emellett időigényes és csak részben automatizálható. A tételbizonyítás során egy bizonyítási fát építünk fel, melynek gyökere a bizonyítandó állítás, csúcsai állítások, az élei pedig levezetési szabályok. Teljes bizonyításhoz tartozó fa levelei axiómák vagy az absztrakt modellből triviálisan következő állítások. Végezetül egy, a tárgy keretében ismertetett alternatív módszer helyes program előállítására a programszintézis, melynek során az előzőekben ismertetett módszerektől eltérően nem egy elkészített program tulajdonságait vizsgáljuk, hanem a specifikációból kiindulva ellenőrzött finomítási lépések sorozatával állítjuk elő a futtatható kódot. A finomítási lépések mindegyikének ellenőrzése biztosítja, hogy az elkészített kód megfeleljen a kezdeti specifikációnak. 3
4 4. A Sparkle helyességbizonyító eszköz A Sparkle tételbizonyító eszközt kifejezetten Clean funkcionális nyelven írt programok helyességvizsgálatához készítették. Az eszköz érdekessége, hogy a belső reprezentáció (az absztrakt modell) leírására használt nyelv is a Clean, pontosabban annak egy speciális részhalmaza az úgynevezett Core-Clean. Ez a specialitás lehetővé teszi, hogy Clean nyelvű programok absztrakt modellje automatikusan, az eszköz által felépíthető legyen, azaz a Sparkle eszköz esetén a modell felépítése nem igényel emberi erőforrást, csak a bizonyítás elvégzése. Az eszközben a tulajdonságokat egyenlőségjeles elsőrendű logikai állításokkal írhatjuk le, viszont a predikátumok helyett csak Boole értékű Clean függvények használhatók. Így például a Páros(x) predikátum teljesülésének vizsgálata helyett definiálnunk kell egy Int Boole típusú páros Clean függvényt és a páros x = True egyenlőséget vizsgálhatjuk, azaz valójában az eszköz segítségével Clean függvények egymáshoz képesti viszonya vizsgálható. Az eszköz 42 levezetési lépést tartalmaz, melyek kifejezetten a Clean nyelv figyelembevételével lettek kialakítva. A nyelv alapvetően lusta kiértékelésű, azaz megengedett végtelen adatstruktúrák használata is. Emiatt előfordulhat, hogy a programban bizonyos kifejezések definiálatlanok lesznek (például egy végtelen lista utolsó eleme). Ezért például az indukció és az esetszétválasztás a Sparkle eszközben kibővül egy újabb esettel, a definiálatlan érték esetével. Ez a gyakorlatban azt jelenti, hogy valamely tulajdonság bizonyításakor, ha valamely változó értéke szerinti esetszétválasztás vagy indukció segítségével akarunk bizonyítani, akkor a megadott feltételekből be kell látnunk, hogy az érték nem lehet definiálatlan, vagy ellenkező esetben be kell látnunk, hogy definiálatlan érték esetén is fennáll a tulajdonság. Az esetszétválasztáson és az indukción kívül a legtöbbször használt levezetési szabályok a redukció, a dedukció, a már bizonyított tulajdonságok alkalmazását végző szabály, az új hipotézisek felvételére szolgáló szabály, illetve a definiálatlanságot vizsgáló szabály. A bizonyítások szekciókba szervezhetők, amelyek elmenthetők és újrafelhasználhatók. Az eszköz rendelkezik egy úgynevezett tanácsadó rendszerrel is, amely egy beépített heurisztika alapján megmondja, hogy a bizonyítás egy adott pontján melyik levezetési szabály milyen valószínűséggel használható. Beállítható, hogy az eszköz a legvalószínűbb lépést automatikusan végrehajtsa, ily módon a bizonyítás részben automatizálható. Azért csak részben, mert a rendszer nem mindig képes tanácsot adni, illetve néhány esetben nem a megfelelő lépést javasolja, így a bizonyítás mindenképpen emberi erőforrást igényel. 5. Egy egyszerű példa Nézzünk egy egyszerű példát Sparkle eszközzel elvégzett bizonyításra. Ehhez tekintsük a Clean beépített StdEnv könyvtárában definiált take illetve drop függvényt. take :: Int![a] -> [a] take n [x:xs] n > 0 = [x: take (n-1) xs] = [] take n [] = [] 4
5 drop :: Int![a] -> [a] drop n [x:xs] n > 0 = drop (n-1) xs = [x:xs] drop n [] = [] Mindkét függvénynek két paramétere van egy egész érték és egy lista (melynek elemtípusára nem teszünk megkötést). A lista paraméterről kikötjük, hogy definiált kell legyen (ezt jelzi a típusleírásnál a! szimbólum), azonban érdemes megjegyezni, hogy ez nem zárja ki a végtelen listákat, mint lehetséges paramétereket. A take függvény a paraméterül adott lista első n elemét adja vissza (illetve a teljes listát, ha annak hossza kisebb n -nél). A függvény a definíció szerint először mintaillesztéssel megállapítja, hogy a paraméterként kapott lista üres-e vagy sem, és ha üres, akkor üres listát ad vissza eredményül. Ha a kapott lista nem üres, akkor megvizsgálja, hogy az ugyancsak paraméterként kapott n érték nagyobb-e nullánál, ha nem, akkor üres lista lesz a visszatérő érték. Ellenkező esetben a függvény leveszi a lista első elemét, és rekurzívan meghívja önmagát eggyel kisebb egész paraméterrel, illetve a lista maradék részével, majd a hívás eredményeként kapott lista elejére hozzáfűzi a levett listaelemet. A drop függvény a fentiekhez nagyon hasonlóan működik, azzal a különbséggel, hogy nem üres lista és nullánál kisebb vagy egyenlő n érték esetén a teljes listát adja vissza eredményként, illetve a rekurzív hívásnál természetesen nem fűzi vissza a lista elejére a levett elemet. Ezen függvényekre megfogalmazhatunk egy olyan állítást, hogy definiált n érték esetén, ha leveszünk n elemet egy listából a take függvénnyel és eldobunk ugyanazon listából n elemet a drop függvénnyel, majd az így kapott két listát összefűzzük, akkor visszakapjuk az eredeti listát. A tulajdonság felírásához felhasználjuk a ++ (összefűzés) függvényt, amely ugyancsak az StdEnv könyvtárában van definiálva. Az állítás formális leírása a következő: (n = ) take n xs ++ drop n xs = xs Az állításban jelöli a definiálatlan értéket. Érdemes megfigyelni, hogy az n definiáltságára vonatkozó feltétel szükséges a bizonyításhoz, mivel definiálatlan n érték esetén take n xs, illetve drop n xs és így természetesen az összefűzésük is definiálatlan, míg xs nyilván lehet definiált. A tulajdonság az xs lista szerinti strukturális indukció, illetve redukció segítségével 17 lépésben bizonyítható a Sparkle eszközzel. A bizonyítás érdekessége, hogy minden lépésben a tanácsadó rendszer által legvalószínűbben alkalmazhatónak tartott levezetési lépést használjuk, azaz a konkrét állítás automatikusan is bizonyítható. 5
6 6. A Sparkle-T kiterjesztés A bemutatott Sparkle egy kiterjesztése a Sparkle-T [8] eszköz, melynek segítségével temporális jellegű logikai tulajdonságok is vizsgálhatóak Clean nyelvű programok esetén. A temporális logikai állítások különösen jól használhatóak imperatív, párhuzamos vagy reaktív programok helyességvizsgálata esetén. Tisztán funkcionális környezetben azonban általában kevésbé használhatóak, hiszen egy ilyen programban a változók egy adott értékhez vannak kötve, és a program futása során nem változtatják az értéküket. Azonban funkcionális programok estén is előfordul, hogy különböző változók értékeit egymásból számoljuk és a változók valójában ugyanazt az (absztrakt) objektumot jelölik. Például a Clean nyelvnek létezik egy olyan könyvtára (az Object I/O könyvtár), melynek segítségével reaktív, egymással együttműködő, belső állapottal rendelkező folyamatokból álló felhasználói felületek készíthetők, egy ilyen folyamat különböző belső állapotait jelölő változók tekinthetőek egy absztrakt objektum alá tartozónak és a közöttük fennálló összefüggéseket megfogalmazhatjuk temporális logikai állítások segítségével. A Sparkle-T eszköz lehetővé teszi, hogy Clean nyelven írt programokhoz absztrakt objektumokat definiáljunk, bizonyos a programban előforduló változókat az így létrehozott objektumokhoz rendeljük hozzá és meghatározzuk a program azon részeit, melyek végrehajtásakor az objektumok értéke megváltozhat. A kiterjesztés azt is lehetővé teszi, hogy a definiált objektumok felett temporális logikai állításokat fogalmazzunk meg a Unity [3] logikából kölcsönzött invariáns és unless operátorokat felhasználva. A Unity logika használata azért előnyös a hallgatók számára, mert a programtervező informatikus BSc szak szoftverfejlesztő informatikus szakirányos hallgatói az Osztott rendszerek specifikációja és implementációja tárgy keretében részletesen megismerkednek ezen logika operátoraival, az általuk kifejezhető tulajdonságokkal, illetve azok bizonyításának módjával. Természetesen a kiterjesztett eszköz a temporális tulajdonságok bizonyításához új levezetési szabályokat is definiál, melyek segítségével az állítások átalakíthatóak elsőrendű logikai állításokká, amik már bizonyíthatóak a hagyományos (Sparkle-ban definiált) eszközökkel. Irodalomjegyzék [1] Abrial J.-R. (1996) The B-Book. Cambridge University Press. [2] Cavada R., Cimatti A., Jochim C. A., Keighren G. (2006) Olivetti E., Pistore M., Roveri M., Tchaltsev A. NuSMV 2.4 User Manual, online kiadvány [3] Chandy K. M., Misra J. (1989) Paralell program design: a foundation. Addison-Wesley. [4] Horváth Z., Csörnyei Z., Lövei L., Zsók V. (2005) Funkcionális programozás témakörei a programtervező képzésben. Informatika a felsőoktatásban'05. Debrecen, Pethő A, Herdon M. (szerk): Informatika a felsőoktatásban
7 [5] Mol M. d., Eekelen M. v., Plasmeijer R. (2001) Theorem Proving for Functional Programmers, Sparkle: A Functional Theorem Prover. Springer, Lecture Notes in Computer Science, kötet, oldalszám: [6] Mol M. d., Eekelen M. v., Plasmeijer R. (2007) The Mathematical Foundation of the Proof Assistant Sparkle. Technical Report ICIS-R07025, Radboud University Nijmegen [7] Nipkow T., Paulson L. C., Wenzel M. (2002) Isabelle/HOL --- A Proof Assistant for Higher-Order Logic. Springer, Lecture Notes in Computer Science, kötet [8] Tejfel M., Horváth Z., Kozsik T. (2006) Temporal Properties of Clean Programs Proven in Sparkle-T. Central European Functional Programming School, Revised Selected Lectures, Springer, Lecture Notes in Computer Science, kötet, oldalszám:
Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }
Funkcionális és logikai programozás { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi ` 1 Jelenlét: Követelmények, osztályozás Az első 4 előadáson
RészletesebbenA TANTÁRGY ADATLAPJA
A TANTÁRGY ADATLAPJA 1. A képzési program adatai 1.1 Felsőoktatási intézmény Babeș Bolyai Tudományegyetem 1.2 Kar Matematika és Informatika Kar 1.3 Intézet Magyar Matematika és Informatika Intézet 1.4
RészletesebbenA DEBRECENI MÉRNÖK INFORMATIKUS KÉPZÉS TAPASZTALATAIRÓL. Kuki Attila Debreceni Egyetem, Informatikai Kar. Összefoglaló
A DEBRECENI MÉRNÖK INFORMATIKUS KÉPZÉS TAPASZTALATAIRÓL TEACHING EXPERIENCES OF THE IT ENGINEERING COURSE OF UNIVERSITY OF DEBRECEN Kuki Attila Debreceni Egyetem, Informatikai Kar Összefoglaló A Debreceni
RészletesebbenProgramozási módszertan
1 Programozási módszertan 1. Alapfogalmak Feldhoffer Gergely 2012 Féléves tananyag terve 2 Program helyességének bizonyítása Reprezentáció Logikai-matematikai eszköztár Programozási tételek bizonyítása
RészletesebbenAlapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók
Haskell 1. Alapok tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók elég jól elkerülhetők így a mellékhatások könnyebben
RészletesebbenRekurzió. Dr. Iványi Péter
Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(
RészletesebbenFUNKCIONÁLIS PROGRAMOZÁS ELŐADÁS JEGYZET
FUNKCIONÁLIS PROGRAMOZÁS ELŐADÁS JEGYZET Szerkesztette: Balogh Tamás 2013. május 30. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! - Ne add
Részletesebben2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér
Funkcionális programozás 2. el adás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2019, tavaszi félév Mir l volt szó? Követelmények, osztályozás Programozási
RészletesebbenRészletes szoftver tervek ellenőrzése
Részletes szoftver tervek ellenőrzése Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.mit.bme.hu/~majzik/ Tartalomjegyzék A részletes
RészletesebbenVéletlen sorozatok ellenőrzésének módszerei. dolgozat
Eötvös Loránd Tudományegyetem Informatikai Kar Komputeralgebra Tanszék Véletlen sorozatok ellenőrzésének módszerei dolgozat Témavezető: Dr. Iványi Antal Miklós egyetemi tanár Készítette: Potempski Dániel
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észletesebbenALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha
ALAPFOGALMAK 1 Á l l a p o t t é r Legyen I egy véges halmaz és legyenek A i, i I tetszőleges véges vagy megszámlálható, nem üres halmazok Ekkor az A= A i halmazt állapottérnek, az A i halmazokat pedig
RészletesebbenA matematikai feladatok és megoldások konvenciói
A matematikai feladatok és megoldások konvenciói Kozárné Fazekas Anna Kántor Sándor Matematika és Informatika Didaktikai Konferencia - Szatmárnémeti 2011. január 28-30. Konvenciók Mindenki által elfogadott
RészletesebbenKaposi Ambrus. University of Nottingham Functional Programming Lab. Hackerspace Budapest 2015. január 6.
Bizonyítás és programozás Kaposi Ambrus University of Nottingham Functional Programming Lab Hackerspace Budapest 2015. január 6. Bizonyítás, érvelés Példa: sáros a csizmám ha vizes a föld, esett az eső
RészletesebbenFormális nyelvek - 9.
Formális nyelvek - 9. Csuhaj Varjú Erzsébet Algoritmusok és Alkalmazásaik Tanszék Informatikai Kar Eötvös Loránd Tudományegyetem H-1117 Budapest Pázmány Péter sétány 1/c E-mail: csuhaj@inf.elte.hu 1 Véges
RészletesebbenHORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport
10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)
RészletesebbenFUNKCIONÁLIS PROGRAMOZÁS GYAKORLAT JEGYZET
FUNKCIONÁLIS PROGRAMOZÁS GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. május 17. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! - Ne add
RészletesebbenRendszermodellezés. Modellellenőrzés. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Rendszermodellezés Modellellenőrzés Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Ismétlés: Mire használunk modelleket? Kommunikáció, dokumentáció Gondolkodás,
RészletesebbenFUNKCIONÁLIS PROGRAMOZÁS
FUNKCIONÁLIS PROGRAMOZÁS A funkcionális programozás néhány jellemzője Funkcionális programozás 1-2 Funkcionális, más néven applikatív programozás Funkcionális = függvényalapú, függvényközpontú Applikatív
RészletesebbenKOVÁCS BÉLA, MATEMATIKA I.
KOVÁCS BÉLA, MATEmATIkA I. 4 IV. FÜGGVÉNYEk 1. LEkÉPEZÉSEk, függvények Definíció Legyen és két halmaz. Egy függvény -ből -ba egy olyan szabály, amely minden elemhez pontosan egy elemet rendel hozzá. Az
RészletesebbenAlgoritmizálás, adatmodellezés tanítása 6. előadás
Algoritmizálás, adatmodellezés tanítása 6. előadás Tesztelési módszerek statikus tesztelés kódellenőrzés szintaktikus ellenőrzés szemantikus ellenőrzés dinamikus tesztelés fekete doboz módszerek fehér
RészletesebbenModellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Modellellenőrzés dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális vagy félformális tervek Informális követelmények Formális modell: KS, LTS, TA
RészletesebbenINFORMATIKA OKTATÁS A KLTE-N 1
INFORMATIKA OKTATÁS A KLTE-N 1 Juhász István, pici@math.klte.hu KLTE, Matematikai és Informatikai Intézet, Információ Technológia Tanszék Abstract The Institute of Mathematics and Informatics of Kossuth
RészletesebbenObjektum orientált kiterjesztés A+ programozási nyelvhez
Szegedi Tudományegyetem Informatikai Tanszékcsoport Objektum orientált kiterjesztés A+ programozási nyelvhez Diplomamunka terve Készítette: Bátori Csaba programtervező matematikus hallgató Témavezető:
RészletesebbenFormális szemantika. Kifejezések szemantikája. Horpácsi Dániel ELTE Informatikai Kar
Formális szemantika Kifejezések szemantikája Horpácsi Dániel ELTE Informatikai Kar 2016-2017-2 Az előadás témája Egyszerű kifejezések formális szemantikája Az első lépés a programozási nyelvek szemantikájának
RészletesebbenA TANTÁRGY ADATLAPJA
A TANTÁRGY ADATLAPJA 1. A képzési program adatai 1.1 Felsőoktatási intézmény Babeș Bolyai Tudományegyetem 1.2 Kar Matematika és Informatika Kar 1.3 Intézet Magyar Matematika és Informatika Intézet 1.4
Részletesebben2005. évi OTKA zárójelentés: OTKA T037742 Vezető kutató: Dr. Horváth Zoltán
Témavezető neve: Dr. Horváth Zoltán A téma címe: Elosztott funkcionális programok helyessége A kutatás időtartama: 2002-2005. A pályázat célja egy olyan szoftvertechnológia megalkotása volt, amellyel programok
RészletesebbenÖsszeállította Horváth László egyetemi tanár
Óbudai Egyetem Neumann János Informatikai Kar Intelligens Mérnöki Rendszerek Intézet Intelligens Mérnöki Rendszerek Szakirány a Mérnök informatikus alapszakon Összeállította Horváth László Budapest, 2011
RészletesebbenBizonyítási módszerek ÉV ELEJI FELADATOK
Bizonyítási módszerek ÉV ELEJI FELADATOK Év eleji feladatok Szükséges eszközök: A4-es négyzetrácsos füzet Letölthető tananyag: Emelt szintű matematika érettségi témakörök (2016) Forrás: www.mozaik.info.hu
RészletesebbenNEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE. Szekvenciális programok kategóriái. Hoare-Dijkstra-Gries módszere
Szekvenciális programok kategóriái strukturálatlan strukturált NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE Hoare-Dijkstra-Gries módszere determinisztikus valódi korai nem-determinisztikus általános fejlett
RészletesebbenElőfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból
ÜTEMTERV Programozás-elmélet c. tárgyhoz (GEMAK233B, GEMAK233-B) BSc gazdaságinformatikus, programtervező informatikus alapszakok számára Óraszám: heti 2+0, (aláírás+kollokvium, 3 kredit) 2019/20-es tanév
RészletesebbenC++ programozási nyelv
C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok
RészletesebbenProgramozás Minta programterv a 1. házi feladathoz 1.
Programozás Minta programterv a 1. házi feladathoz 1. Gregorics Tibor 1. beadandó/0.feladat 2008. december 6. EHACODE.ELTE gt@inf.elte.hu 0.csoport Feladat Egy osztályba n diák jár, akik m darab tantárgyat
RészletesebbenEljárások és függvények
Eljárások és függvények Jegyzet Összeállította: Faludi Anita 2012. Bevezetés Ez a jegyzet elsősorban azoknak a diákoknak készült, akiket tanítok, ezért a jegyzet erőteljesen hiányos. Az olvasó egy percig
RészletesebbenBevezetés az informatikába
Bevezetés az informatikába 6. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.
Részletesebben2019, Funkcionális programozás. 4. el adás. MÁRTON Gyöngyvér
Funkcionális programozás 4. el adás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2019, tavaszi félév Mir l volt szó? GHC parancsok fenntartott szavak
Részletesebben5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E
5. SOR A sor adatszerkezet is ismerős a mindennapokból, például a várakozási sornak számos előfordulásával van dolgunk, akár emberekről akár tárgyakról (pl. munkadarabokról) legyen szó. A sor adattípus
RészletesebbenPROGRAMTERVEZŐ INFORMATIKUS ALAPKÉPZÉSI SZAK
PROGRAMTERVEZŐ INFORMATIKUS ALAPKÉPZÉSI SZAK 1. Az alapképzési szak megnevezése: programtervező informatikus (Computer Science) 2. Az alapképzési szakon szerezhető végzettségi szint és a szakképzettség
RészletesebbenKomponens alapú programozás Bevezetés
Komponens alapú programozás Bevezetés Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Ez a tananyag felhasználja a TEMPUS S_JEP-12495-97 Network Computing Chapter 8 Developing of Network Computing
RészletesebbenNeme nő Születési dátum 26/10/1988 Állampolgárság magyar
SZEMÉLYI ADATOK Nagy Noémi Magyarország, 1165 Budapest, Újszász utca 45/B K. ép. I. lph. 3. em. 2. 06 70 340 7335 matnagyn@uni-miskolc.hu http://uni-miskolc.hu/~matnagyn Neme nő Születési dátum 26/10/1988
RészletesebbenA modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel
A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel Majzik István Micskei Zoltán BME Méréstechnika és Információs Rendszerek Tanszék 1 Modell alapú fejlesztési folyamat (részlet)
RészletesebbenMesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008
Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 007/008 Az Előadások Témái Bevezető: mi a mesterséges intelligencia... Tudás reprezentáció i stratégiák Szemantikus hálók / Keretrendszerek
RészletesebbenA SZAKDOLGOZAT SZERKESZTÉSE
A SZAKDOLGOZAT SZERKESZTÉSE Főiskolai és BSc szakokon Szakdolgozat 1. A szakdolgozat nyelve: magyar vagy angol. 2. A szakdolgozat alakja: A4 formátum, bekötött, fekete színű kemény kötés. 3. A szakdolgozat
RészletesebbenA TANTÁRGY ADATLAPJA
A TANTÁRGY ADATLAPJA 1. A képzési program adatai 1.1 Felsőoktatási intézmény Babeș Bolyai Tudományegyetem 1.2 Kar Matematika és Informatika Kar 1.3 Intézet Magyar Matematika és Informatika Intézet 1.4
Részletesebben2016, Funkcionális programozás
Funkcionális programozás 2. előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2016, tavaszi félév Miről volt szó? Programozási paradigmák: imperatív,
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észletesebbenMemo: Az alábbi, "természetes", Gentzen típusú dedukciós rendszer szerint készítjük el a levezetéseket.
Untitled 2 1 Theorema Predikátumlogika 1 3 Natural Deduction (Gentzen mag/alap kalkulus) Cél: a logikai (szematikai) következményfogalom helyett a (szintaktikai) levethetõség vizsgálata. A bizonyítási
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észletesebbenÚj típusú döntési fa építés és annak alkalmazása többtényezős döntés területén
Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén Dombi József Szegedi Tudományegyetem Bevezetés - ID3 (Iterative Dichotomiser 3) Az ID algoritmusok egy elemhalmaz felhasználásával
RészletesebbenEgy 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észletesebbenProgramtervező informatikus MSc nappali tagozat ajánlott tanterv 2018
Előadás Előadás Programtervező informatikus MSc nappali tagozat ajánlott tanterv 2018 Szoftvertechnológia specializáció (törzsanyaggal együtt) Törzsanyag IPM-18KMTGY Kutatásmódszertan 0 2 Gy 1 3 1 0+2+1
RészletesebbenProgramtervező informatikus MSc nappali tagozat ajánlott tanterv 2018
Előadás Előfeltétel Előadás Előfeltétel Programtervező informatikus MSc nappali tagozat ajánlott tanterv 018 Szoftvertechnológia specializáció (törzsanyaggal együtt) Törzsanyag IPM-18KMTGY Kutatásmódszertan
RészletesebbenBASH script programozás II. Vezérlési szerkezetek
06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van
RészletesebbenS0-02 Típusmodellek (Programozás elmélet)
S0-02 Típusmodellek (Programozás elmélet) Tartalom 1. Absztrakt adattípus 2. Adattípus specifikációja 3. Adattípus osztály 4. Paraméterátadás 5. Reprezentációs függvény 6. Öröklődés és polimorfizmus 7.
RészletesebbenA DIPLOMAMUNKA FORMAI KÖVETELMÉNYEI JAVASLAT
A DIPLOMAMUNKA FORMAI KÖVETELMÉNYEI JAVASLAT A diplomamunka kötelező részei (bekötési sorrendben) 1. Fedőlap - Bal felső sarokban a kiíró tanszék megnevezése (ha két tanszékkel együttműködve dolgozzuk
RészletesebbenSzoftver-modellellenőrzés absztrakciós módszerekkel
Szoftver-modellellenőrzés absztrakciós módszerekkel Hajdu Ákos Formális módszerek 2017.03.22. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék 1 BEVEZETŐ 2
RészletesebbenSZÁMÍTÓGÉPES VIZUALIZÁCIÓ A MATEMATIKA TANÍTÁSÁBAN: ESZKÖZÖK, FEJLESZTÉSEK, TAPASZTALATOK
SZÁMÍTÓGÉPES VIZUALIZÁCIÓ A MATEMATIKA TANÍTÁSÁBAN: ESZKÖZÖK, FEJLESZTÉSEK, TAPASZTALATOK Karsai János, karsai@silver.szote.u-szeged.hu, Forczek Erzsébet, forczek@dmi.szote.u-szeged.hu, Nyári Tibor, nyari@dmi.szote.u-szeged.hu
RészletesebbenA félév során előkerülő témakörök
A félév során előkerülő témakörök rekurzív algoritmusok rendező algoritmusok alapvető adattípusok, adatszerkezetek, és kapcsolódó algoritmusok dinamikus programozás mohó algoritmusok gráf algoritmusok
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észletesebbenTovábbtanulás, pályakövetés
Továbbtanulás, pályakövetés 2002-2003 Gimnázium, Idegenforgalmi szakközépiskola, Vendéglátóipari 199 fő % szakközépiskola 70 43 71 44 szakképzésre 49 30 2003-2004 Gimnázium 102 fő % 51 50 49 48 szakképzésre
RészletesebbenModellellenőrzés a vasút automatikai rendszerek fejlesztésében. XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő
Modellellenőrzés a vasút automatikai rendszerek fejlesztésében XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő 2018.04.25-27. Tartalom 1. Formális módszerek state of the art 2. Esettanulmány
RészletesebbenMindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1
Halmazok 1 Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 2 A fejezet legfontosabb elemei Halmaz megadási módjai Halmazok közti műveletek (metszet,
RészletesebbenIII. Alapfogalmak és tervezési módszertan SystemC-ben
III. Alapfogalmak és tervezési módszertan SystemC-ben A SystemC egy lehetséges válasz és egyben egyfajta tökéletesített, tovább fejlesztett tervezési módszertan az elektronikai tervezés területén felmerülő
Részletesebben1. előadás: Halmazelmélet, számfogalom, teljes
1. előadás: Halmazelmélet, számfogalom, teljes indukció Szabó Szilárd Halmazok Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) összessége. Egy halmaz akkor adott, ha minden objektumról eldönthető,
RészletesebbenProgramok értelmezése
Programok értelmezése Kód visszafejtés. Izsó Tamás 2016. szeptember 22. Izsó Tamás Programok értelmezése/ 1 Section 1 Programok értelmezése Izsó Tamás Programok értelmezése/ 2 programok szemantika értelmezése
RészletesebbenInformációk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása
1 Információk 2 A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin Elérhetőség mesko.katalin@tfk.kefo.hu Fogadóóra: szerda 9:50-10:35 Számonkérés időpontok Április 25. 9 00 Május 17. 9 00 Június
RészletesebbenMindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.
HA 1 Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) HA 2 Halmazok HA 3 Megjegyzések A halmaz, az elem és az eleme fogalmakat nem definiáljuk, hanem alapfogalmaknak
RészletesebbenDiszkrét matematika I.
Diszkrét matematika I. középszint 2013 ősz 1. Diszkrét matematika I. középszint 8. előadás Mérai László merai@compalg.inf.elte.hu compalg.inf.elte.hu/ merai Komputeralgebra Tanszék 2013 ősz Kombinatorika
RészletesebbenBánsághi Anna anna.bansaghi@mamikon.net. 2014 Bánsághi Anna 1 of 31
IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 9. ELŐADÁS - OOP TERVEZÉS 2014 Bánsághi Anna 1 of 31 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív paradigma
RészletesebbenSZOFTVEREK A SORBANÁLLÁSI ELMÉLET OKTATÁSÁBAN
SZOFTVEREK A SORBANÁLLÁSI ELMÉLET OKTATÁSÁBAN Almási Béla, almasi@math.klte.hu Sztrik János, jsztrik@math.klte.hu KLTE Matematikai és Informatikai Intézet Abstract This paper gives a short review on software
RészletesebbenProgramozási nyelvek a közoktatásban alapfogalmak I. előadás
Programozási nyelvek a közoktatásban alapfogalmak I. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig)
RészletesebbenLeképezések. Leképezések tulajdonságai. Számosságok.
Leképezések Leképezések tulajdonságai. Számosságok. 1. Leképezések tulajdonságai A továbbiakban legyen A és B két tetszőleges halmaz. Idézzünk fel néhány definíciót. 1. Definíció (Emlékeztető). Relációknak
RészletesebbenSzoftverminőségbiztosítás
NGB_IN003_1 SZE 2014-15/2 (13) Szoftverminőségbiztosítás Szoftverminőség és formális módszerek Formális módszerek Formális módszer formalizált módszer(tan) Formális eljárások alkalmazása a fejlesztésben
RészletesebbenSegédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat
Formális nyelvek a gyakorlatban Formális nyelvek, 1 gyakorlat Segédanyagok Célja: A programozási nyelvek szintaxisának leírására használatos eszközök, módszerek bemutatása Fogalmak: BNF, szabály, levezethető,
RészletesebbenProgramozás alapjai (ANSI C)
Programozás alapjai (ANSI C) 1. Előadás vázlat A számítógép és programozása Dr. Baksáné dr. Varga Erika adjunktus Miskolci Egyetem, Informatikai Intézet Általános Informatikai Intézeti Tanszék www.iit.uni-miskolc.hu
RészletesebbenMiskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék
Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék 2017/18 2. félév 3. Előadás Dr. Kulcsár Gyula egyetemi docens Kereső algoritmusok alkalmazása
RészletesebbenProgramozási Technológia 1. 1. előadás bevezetés. Előadó: Lengyel Zsolt
Programozási Technológia 1. 1. előadás bevezetés Előadó: Lengyel Zsolt Tartalom Információk a tantárggyal kapcsolatban Programozási technológiai eszközök áttekintése UML tervezőeszközök JAVA fejlesztőeszközök,
Részletesebben... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.
Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat
RészletesebbenGráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor
Gráfok 2. Legrövidebb utak, feszítőfák előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar Legrövidebb utak keresése Minimális feszítőfa keresése Gráfok 2
Részletesebben... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)
6. Fabejáró algoritmusok Fa bejárásán olyan algoritmust értünk, amelynek bemenete egy F fa és egy M művelet, és az algoritmus adott sorrendben pontosan egyszer végrehajtja az M műveletet a fa pontjaiban
RészletesebbenPélda a report dokumentumosztály használatára
Példa a report dokumentumosztály használatára Szerző neve évszám Tartalomjegyzék 1. Valószínűségszámítás 5 1.1. Események matematikai modellezése.............. 5 1.2. A valószínűség matematikai modellezése............
RészletesebbenModellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Modellellenőrzés dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális vagy félformális tervek Informális követelmények Formális modell: KS, LTS, TA
RészletesebbenKOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA
KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA Szoftver Verifikáció és Validáció, 2015 Ősz Vaitkus Márton Tartalom Motiváció Maple MiniMaple MiniMaple típusellenőrzése MiniMaple formális specifikációja MiniMaple
RészletesebbenA fröccs szintaxisa és operációs szemantikája
A fröccs szintaxisa és operációs szemantikája Kaposi Ambrus Eötvös Loránd Tudományegyetem akaposi@inf.elte.hu 2017. október 2. 1. Bevezetés Ipari partnerünk megkereste az Informatikai Kar Programozási
RészletesebbenAz R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.
2. A VALÓS SZÁMOK 2.1 A valós számok aximómarendszere Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit. 1.Testaxiómák R-ben két művelet van értelmezve, az
RészletesebbenOktatási segédlet 2014
Oktatási segédlet 2014 A kutatás a TÁMOP 4.2.4.A/2-11-1-2012- 0001 azonosító számú Nemzeti Kiválóság Program Hazai hallgatói, illetve kutatói személyi támogatást biztosító rendszer kidolgozása és működtetése
RészletesebbenA C programozási nyelv I. Bevezetés
A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,
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észletesebbenÁltalános algoritmustervezési módszerek
Általános algoritmustervezési módszerek Ebben a részben arra mutatunk példát, hogy miként használhatóak olyan általános algoritmustervezési módszerek mint a dinamikus programozás és a korlátozás és szétválasztás
Részletesebben26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA
26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA Az előző két fejezetben tárgyalt feladat általánosításaként a gráfban található összes csúcspárra szeretnénk meghatározni a legkisebb költségű utat. A probléma
RészletesebbenFormális módszerek GM_IN003_1 Program verifikálás, formalizmusok
Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok Program verifikálás Konkurens programozási megoldások terjedése -> verifikálás szükséges, (nehéz) logika Legszélesebb körben alkalmazott
Részletesebben1000 forintos adósságunkat, de csak 600 forintunk van. Egyetlen lehetőségünk, hogy a
A merész játékok stratégiája A következő problémával foglalkozunk: Tegyük fel, hogy feltétlenül ki kell fizetnünk 000 forintos adósságunkat, de csak 600 forintunk van. Egyetlen lehetőségünk, hogy a még
RészletesebbenSpecifikáció alapú teszttervezési módszerek
Szoftverellenőrzési technikák Specifikáció alapú teszttervezési módszerek Majzik István, Micskei Zoltán http://www.inf.mit.bme.hu/ 1 Klasszikus tesztelési feladat A tesztelendő program beolvas 3 egész
RészletesebbenProgramozási nyelvek 6. előadás
Programozási nyelvek 6. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig) Számítási modell (hogyan
RészletesebbenAritmetikai kifejezések lengyelformára hozása
Aritmetikai kifejezések lengyelformára hozása Készítették: Santák Csaba és Kovács Péter, 2005 ELTE IK programtervező matematikus szak Aritmetikai kifejezések kiértékelése - Gyakran felmerülő programozási
RészletesebbenBevezetés a Python programozási nyelvbe
Bevezetés a Python programozási nyelvbe 7. Gyakorlat osztályok, objektumok (utolsó módosítás 2018. aug. 28.) Szathmáry László Debreceni Egyetem Informatikai Kar 2018-2019, 1. félév OO programozás Pythonban
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észletesebbenGyakorló feladatok: Formális modellek, temporális logikák, modellellenőrzés. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Gyakorló feladatok: Formális modellek, temporális logikák, modellellenőrzés Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Formális modellek használata és értelmezése Formális modellek
RészletesebbenVéges automaták, reguláris nyelvek
Véges automaták, reguláris nyelvek Kiegészítő anyag az lgoritmuselmélet tárgyhoz (a Rónyai Ivanyos Szabó: lgoritmusok könyv mellé) Friedl Katalin BME SZIT friedl@cs.bme.hu 27. augusztus 3. véges automata
RészletesebbenValószínűségi modellellenőrzés Markov döntési folyamatokkal
Valószínűségi modellellenőrzés Markov döntési folyamatokkal Hajdu Ákos Szoftver verifikáció és validáció 2015.12.09. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek
Részletesebben