Download - Algoritmusok megjelenítése egy magas szintű programnyelv vizuális nyomkövetőjén keresztül
Algoritmusok megjelenítése egy magas szintű programnyelv vizuális
nyomkövetőjén keresztülPodoski Péter és Zabb László
BevezetőAlgoritmus-vizualizáció témakörében
végeztünk kutatásokat és fejlesztéseketFelmértük a manapság ismert eszközök
hiányosságaitKidolgoztunk 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ásaElvá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 nyelvMagas 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ódraMiből mi lesz a négy lépés alatt az ábra
alapján. Eredmény a Microlex kód.
ParancsobjektumokEgy kapott környezeten dolgoznak.Környezet: IP, RunStack, CallStack,
VáltozólistaHárom fő csoportjuk:
Vezérlés-átadó parancsobjektumokKonkrét műveleteket végrehajtó
parancsobjektumokVáltozókat, adatszerkezeteket kezelő
parancsobjektumok
Saját virtuális platformParancsobjektumok tömbje interpretálódik, a
környezet elemeiHW (többprocesszoros gép, memória)SW op. rendszer, alacsony szinten: runstack,
call stack, varlist, IP, SP Ide jön egy ábraVirtuális hálózat, virtuális gép (Mini OS ,
ütemező), folyamat, szál
Saját típusrendszerGazdag. 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 micsodaHogy 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 IDEFunkciók
LexLighterSyntax highlightLéptetési módszerekKorszerű IDE, tabok, több forrásfájl kezelése,
testre szabható, ergonómikusNézetek váltása
Típushierarchia
Saját vizualizációDinamikus, változást követő, adatszerkezetek
megjelenítése, mit láthatunkEgy-két ábra egy-egy mondat erejéig.Montázs:
Hívási vermes megjelenítésEgy központi adatszerkezet kiemeléseEgymá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ületekOktatás
AlgoritmusokProgramozásFordító programok
KutatásAlgoritmusok „megalkotása„Elméletek tesztelése
FejlesztésAlgoritmikus 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.