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és (motiváció) „Milyen nyelven és fejlesztői környezetben lehet jól tanítani a programozást?” Lehetőleg ne hagyjuk bealudni a kitalálógépet (az elmét) „Hogyan lehet egyszerűen, de mégis szemléletesen bemutatni a különféle algoritmusokat?” Klasszikus módszer (tábla és kréta) Mindenki írja meg magától a számára megfelelő megjelenítést A mi válaszunk egy saját fejlesztésű algoritmus- megjelenítő segédeszköz, a Psimulex

3 Algoritmus-vizualizációk ma Célja főleg oktatási (esetleg kutatási) területre segíti az ismertetést és megértést olykor algoritmusok fejlesztésekor könnyítheti a hibakeresést Nehézség: 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

9 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

10 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

11 Architektúra

12 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

13 Saját virtuális platform Virtuális gép („mini” OS ütemezővel), folyamatok, szálak (futási és hívási veremmel) A virtuális gép processzora futtatja az ún. „Microlex” utasításokat (gépi kódnak megfelelő parancsokat) Az ütemező cserélhető Később virtuális hálózattá bővíthető Miért nem használtunk egy meglévő VM-et? szükségünk van a teljes kontrollra a futó program felett

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

15 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

16 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

17 Típushierarchia

18 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

19 Saját vizualizáció Az adatszerkezetek dinamikus, változást követő, interaktív 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

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

21 Szélességi bejárás

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

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37 Felhasználási területek Oktatás Algoritmusok Programozás Fordítóprogramok (assembly-szerű nyelvek logiká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

38 Távlati tervek Párhuzamos programozási eszközök teljes körű bevezetése lock, monitor, erőforrások, stb….NET interoperabilitás növelése Psimulex-ben írt programból C# vagy IL kód generálása.NET Base Class Libraryt-t elérhetővé tenni Integráció a Visual Studio debuggerébe intelligens.NET adatszerkezet reflekció és saját grafikus „debugger visualizer” Internetes portál (pl. versenyekhez)

39 Értékelés Tipikusan túlvállalt projekt: több kezdeti cél ma már csak terv Felhasználóbarátság egyelőre nem jellemző A megjelenítés nem grafikusi vénánkról árulkodik 2. iterációhoz képest stabil rendszermag (200 unit teszt) Könnyű bővíthetőség Sikerélmény

40 Ö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

41


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