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
Szintaxis
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, call stack, 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 + Property wrapper) 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 Syntax highlight Léptetési módszerek Korszerű IDE, tabok, több forrásfájl kezelése, testre szabható, ergonómikus Nézetek váltása
Típushierarchia
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)
Egy bináris fa megfigyelése
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.