arvutiteaduse instituudi lõputööderegister


Integreeritud arenduskeskkond SecreC programmeerimiskeelele
Nimi Reimo Rebane
Kokkuvõte Sharemind on raamistik, mis võimaldab teha privaatsust säilitavaid arvutusi. Sharemind koosneb kolmest andmekaevandaja rakendusest ja juhtimisteegist. Andmekaevandajad, moodustades Sharemindi virtuaalmasina, teevad olemasolevate andmete peal privaatseid arvutusi. Juhtimisteegi abil saavad teised rakendused andmekaevandajate tööd kontrollida ning nende andmebaasidesse uusi andmeid sisestada. Sharemindi raamistikule on loodud kaks programmeerimiskeelt: Sharemindi assemblerkeel ja SecreC keel. Sharemindi assemblerkeel on madala taseme keel, mida käivitatakse otse Sharemindi virtuaalmasinas. Kuigi ta lubab teha privaatsust säilitavaid arvutusi teostavaid rakendusi, on rakenduste tegmise protsess keeruline, sest madala taseme keeles programmeerimine on aeganõudev ning vigadele avatud. Selleks, et arendajad ei peaks assemblerkeeles programmeerima, loodi SecreC keel. SecreC on C-keele laadne programmeerimiskeel, mis võimaldab luua andmekaevandusalgoritme Sharemindi raamistiku rakendustele. SecreC kompileeritakse Sharemindi assemblerkeeleks, mis seejärel käivitatakse virtuaalmasinas. Klientrakendused kasutavad juhtimisteeki andmekaevandaja rakendustega suhtlemiseks. Praegune Sharemindi klientrakenduste loomise protsess koosneb kasutajaliidese loomisest ja andmekaeve algoritmide realiseerimisest. Kasutajaliideses peab olema võimalus andmeid lisada, esitada päringuid olemasolevate andmete peal arvutuste tegemiseks ja arvutustulemusi kuvada. Järgnevalt tuleb luua andmekaevandusalgoritmid, mis realiseeritakse SecreC keeles. Loodud algoritme tuleb testida ning kontrollida, et lekkivaid andmeid ei oleks. Kuigi Sharemindi raamistik garanteerib andmete privaatsuse instruktsiooni tasemel, võivad lekked siiski esineda algoritmi tasemel. Käesoleva töö eesmärgiks on lihtsustada rakendustele algormitmide realiseerimise protsessi SecreC programmeerimiskeeles. Meie panususena on loodud integreeritud arenduskeskkond, mis toetab programmeerijat, pakkudes talle mitmeid tööriistu, mis peaksid lihtsustama programmeerimist nii SecreC keeles kui ka Sharemindi assemblerkeeles. Samuti on arenduskeskonnas liides SecreC kompileerimiseks assemblerkeeleks, kasutades Sharemindi raamistiku SerceC kompilaatorit. Juhtimisteek lubab virtuaalmasinas assemblerkeelt käivitada ning siluda. Silumise töörežiimis saab uurida virtuaalmasina pinu ja registreid. Arenduskeskond on programmeeritud C++ keeles ning kasutab Qt raamistiku suure osa funktsioonide realiseerimiseks. Qt raamistik pakub laialdast funktsionaalsust ning on platvormist sõltumatu. Samuti on kasutatud QScintilla teeki keskse koodiredaktori loomiseks. QScintilla on Qt raamistikule kohandatud versioon Scintilla teegist, mis on laialdaselt tuntud lähtekoodi redaktori teek.
Lõputöö keel inglise
Lõputöö tüüp Bakalaureus - Infotehnoloogia
Juhendaja(d) Dan Bogdanov
Kaitsmise aasta 2010
PDF