Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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.

Hasonló előadás


Az előadások a következő témára: "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őadás másolata:

1 Podoski Péter és Zabb László

2 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ő rendszert, amiben az algoritmusok vizualizációjához szükséges eszközök széles palettája elérhető

3 Algoritmus-vizualizáció ma Célja: főleg oktatási területre (könnyebb ismertetés és megértés), olykor algoritmusok fejlesztésekor is segíthet a hibakeresésben Nehézségek: egy vizualizáció elkészítéséhez könnyebb egy új, testreszabott megjelenítő programot írni, mint találni egyet, ami megfelel az igényeinknek Jellemző, hogy egyszerű, böngészőben futtatható Java appletekkel valósítják meg a demonstrációt Néhány példa következik…

4 Dijkstra algoritmusa

5 Legrövidebb út keresése Ausztráliában

6 Jeliot – program-vizualizáció

7 MatrixPro – az egyik legáltalánosabb

8 Az igény megfogalmazása Elvárások egy jó vizualizátorral kapcsolatban: Célközönség számára megfelelő megjelenítés Könnyedén lehessen a vizualizációkat módosítani, bővíteni (pl. Hanoi tornyai) Egyszerű telepítés Épüljön be a tanítási folyamatba Ne igényeljen magas szintű programozói tudást

9 Psimulex - lehetőségek.NET-ben írt nyílt forráskódú keretrendszer Algoritmusok megfogalmazása C-szerű nyelv Beépített fordítóprogram Algoritmusok futtatása Saját virtuális platform Többprocesszoros, akár hálózati emuláció Algoritmusok megjelenítése a virtuális gép változóit megjelenítő általános grafikai könyvtár (WPF) Algoritmusok elemzése Műveletigény, memóriaigény

10 Saját nyelv Az algoritmusok szempontjából alapvető típusok (skalárisok, konténerek és fák, gráfok) Gyengén típusos imperatív nyelv, C-szerű szintaxissal Típuskonstrukció: rekord Fontosabb vezérlési szerkezetek Felhasználói függvények Több forrásfájl használata Globális változók

11 Saját virtuális platform Virtuális hálózat, virtuális gép („mini” OS ütemezővel), folyamatok, szálak A virtuális gép processzora futtatja az ún. „Microlex” utasításokat (gépi kódnak megfelelő parancsobjektumokat) Az egyes szálaknak futási és hívási vermük van Az ütemező cserélhető

12 Fordítás gépi kódra Négy lépésben fordítunk az alacsony szintű utasításkészletre, visitor (látogató) tervminta alkalmazásával

13 Parancsobjektumok A „parancs” tervminta alapján készültek Mindegyik gépi utasítás egy-egy parancsobjektum Az aktuális futási környezeten dolgoznak Három fő csoportjuk van: Vezérlés-átadó parancsobjektumok (pl. Jump) Konkrét (főleg aritmetikai) műveleteket végrehajtó parancsobjektumok Változókat, adatszerkezeteket kezelő parancsobjektumok

14 Saját típusrendszer Aránylag gazdag típuskészlet Java-hoz hasonlóan közös őstípus BaseType == Object Primitív típusok + gyűjtemények + fák + gráfok Reflection-re épül, emiatt könnyen elérhető az egész.NET osztályhierarchia Felhasználói típus a rekord, mezőinek kezdőértéket lehet megadni Gyengén típusosság miatt a konténerekbe tetszőleges típusú elem tehető (pl. listába bináris fák) Automatikus típuskonverziók

15 Típushierarchia

16 Saját IDE Funkciók LexLighter (aktuális utasítás színezése) Syntax highlight Léptetési módszerek (hasonlóan a VS-hez + step back) Korszerű IDE, tabok, több forrásfájl kezelése, testre szabható, ergonómikus Nézetek váltása

17 Saját vizualizáció Dinamikus, változást követő, interaktív adatszerkezetek megjelenítése „Montázs” – tetszőleges elrendezhetőség: Hívási verem megjelenítése Egy-egy lényeges adatszerkezet kiemelése Egymásba ágyazhatóság (fa elemei gráfok) Adatszerkezetek szerkeszthetőek futás közben is

18 Bináris fák egy sorban

19 Egy irányítás nélküli gráf szerkesztése

20 Egy bináris fa szintfolytonos bejárása a Psimulex-ben

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35 Felhasználási területek Oktatás Algoritmusok Programozás Fordító programok (assembly-szerű nyelvek filozófiája) Kutatás Algoritmusok „megalkotása” Elméletek tesztelése és bemutatása Fejlesztés Algoritmikus problémák megoldása itt és aztán implementálása Demonstráció Automatikusan létrejön a megjelenítés, testre szabható, exportálható a program futása, eredménye, csak a programot kell megírni, az inputot megszerkeszteni.

36 Távlati tervek Párhuzamos programozási eszközök (lock, monitor, erőforrások) teljeskörű bevezetése.NET interopabilitás növelése (a megírt Psimulex nyelvű programból C# vagy IL kódot generálhassunk) Integráció a Visual Studio debuggerébe: intelligens.NET adatszerkezet reflekció + grafikus modul Internetes portál nyitás, ahol pl. algoritmikus problémamegoldó versenyeket lehet indítani, gyorsaság, egyszerűség stb. szempontok szerint pontozva

37


Letölteni ppt "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."

Hasonló előadás


Google Hirdetések