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ó Témavezetők: Dr. Fekete István, Veszprémi Anna ELTE IK.

Hasonló előadás


Az előadások a következő témára: "Podoski Péter és Zabb László Témavezetők: Dr. Fekete István, Veszprémi Anna ELTE IK."— Előadás másolata:

1 Podoski Péter és Zabb László Témavezetők: Dr. Fekete István, Veszprémi Anna ELTE IK

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ók 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: könnyebb újat írni, mint találni egy megfelelőt Jellemző, hogy egyszerű Java appletekkel valósítják meg a demonstrációt

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ó megjelenítővel kapcsolatban: Célközönség számára megfelelő ábrázolá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ű nyelven 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 program változóit megjelenítő általános grafikai könyvtár (WPF) Algoritmusok elemzése Műveletigény, memóriaigény

10 Architektúra

11 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

12 Saját virtuális platform 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ő Később virtuális hálózattá bővíthető

13 Fordítás gépi kódra Négy lépésben fordítunk, visitor (látogató) tervminta alkalmazásával

14 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 (szálon) dolgoznak Három fő csoportjuk van: Vezérlés-átadó parancsobjektumok (pl. Call, Jump) Konkrét (főleg aritmetikai) műveleteket végrehajtó parancsobjektumok Változókat, adatszerkezeteket kezelő parancsobjektumok

15 Saját típusrendszer Aránylag gazdag típuskészlet (skalár típusok, gyűjtemények, fák, gráfok) Java-hoz hasonlóan közös őstípus BaseType == Object Reflection-re épül, emiatt könnyen elérhető az egész.NET osztályhierarchia Felhasználói típus a rekord (egyelőre) A komplex típusok egymásba ágyazhatóak Automatikus típuskonverziók

16 Típushierarchia

17 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) Korszerű IDE, fülek, több forrásfájl kezelése, testre szabható, ergonomikus Nézetek váltása

18 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

19 Például bináris fák egy sorban

20 Szélességi bejárás

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

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36 Felhasználási területek Oktatás Algoritmusok Programozás Fordítóprogramok (assembly-szerű nyelvek filozófiája) Kutatás 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, csak a programot kell megírni, az inputot megszerkeszteni.

37 Távlati tervek Párhuzamos programozási eszközök (lock, monitor, erőforrások) teljeskörű bevezetése.NET interoperabilitá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ó és saját grafikus modul Internetes portál (pl. versenyekhez) Oktatási és fejlesztési segédeszközzé válás

38 Összefoglaló Felmértük a jelenlegi igényeket és kínálatot az algoritmus megjelenítőkből Elhatároztuk, hogy készítünk egy általános algoritmus megjelenítő rendszert Ebből megvalósult a saját nyelven programozható virtuális gép, egy egyszerű grafikus csomag és egy alapszintű debugger Célok: az eddigi tapasztalatok alapján egy komplett segédeszköz publikálása

39


Letölteni ppt "Podoski Péter és Zabb László Témavezetők: Dr. Fekete István, Veszprémi Anna ELTE IK."

Hasonló előadás


Google Hirdetések