140 likes | 281 Views
Algoritmusok megjelenítése egy magas szintű programnyelv vizuális nyomkövetőjén keresztül. 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 hiányosságait
E N D
Algoritmusok megjelenítése egy magas szintű programnyelv vizuális nyomkövetőjén keresztül 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 hiányosságait • Kidolgoztunk egy saját rendszert, amiben az algoritmusok vizualizációjához szükséges eszközök széles palettája elérhető
Az igény megfogalmazása • Elvárások egy jó vizualizátorral kapcsolatban: • célközönség számára megfelelő megjelenítést • lehessen hozzá tetszőleges vizualizációs modult készíteni vagy csatolni • Szélsőségek túl részletes, túl kötött, csak megjelenítés, animálás • Megoldás a célunk („Arany középút”) -> PSimulex
Saját nyelv • Magas szintű utasítások, lehetőségek. • Legfőbb jellemzői: gyengén típusos, C-szerű, modern nyelvekhez illeszkedő szintaxis, • egyszerű, típuskonstrukció rekord, fontosabb vezérlési szerkezetek, felhasználói függvények, importálás, globális változók
Fordítás gépi kódra • Miből mi lesz a négy lépés alatt az ábra alapján. Eredmény a Microlex kód.
Parancsobjektumok • Egy kapott környezeten dolgoznak. • Környezet: IP, RunStack, CallStack, Változólista • Három fő csoportjuk: • Vezérlés-átadó parancsobjektumok • Konkrét műveleteket végrehajtó parancsobjektumok • Változókat, adatszerkezeteket kezelő parancsobjektumok
Saját virtuális platform • Parancsobjektumok tömbje interpretálódik, a környezet elemei • HW (többprocesszoros gép, memória) • SW op. rendszer, alacsony szinten: runstack, callstack, varlist, IP, SP • Ide jön egy ábra • Virtuális hálózat, virtuális gép (Mini OS , ütemező), folyamat, szál
Saját típusrendszer • Gazdag. BaseType == Object • Primitív típusok + gyűjtemények + fák + gráfok • (Esetleg 2 spec Referencia + Propertywrapper) • Saját típusok • Hogy tudjuk mi micsoda • Hogy egyszerűen lehessen algoritmusokat megfogalmazni. • Felhasználói típus a rekord, példányosul, mezőinek kezdőértéket lehet megadni. • Gyengén típusosság miatt mindenbe mindent lehet tenni. • Konverzió + típus hierarchia. Szinte minden mindenre. Minden összetettre.
Saját IDE • Funkciók • LexLighter • Syntaxhighlight • Léptetési módszerek • Korszerű IDE, tabok, több forrásfájl kezelése, testre szabható, ergonómikus • Nézetek váltása
Saját vizualizáció • Dinamikus, változást követő, adatszerkezetek megjelenítése, mit láthatunk • Egy-két ábra egy-egy mondat erejéig. • Montázs: • Hívási vermes megjelenítés • Egy központi adatszerkezet kiemelése • Egymásba ágyazhatóság • Adatszerkezetek szerkesztése menet közben is, gráf editor(, fa editor)
Felhasználási területek • Oktatás • Algoritmusok • Programozás • Fordító programok • Kutatás • Algoritmusok „megalkotása„ • Elméletek tesztelése • 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.