“Low Level Virtual Machine” virtuaal masin F2F arvutusvõrgu jaoks
Nimi
Oleg Knut
Kokkuvõte
Akronüümi F2F taga on inglisekeelsed sõnad Friend to Friend (sõbralt sõbrale). See on lihtne kasutajalt-kasutajale võrgustik, mis lubab kasutajatele (sõpradele) vahetada arvuti jõudluse kasutamist. F2F on kirjutatud Tartu Ülikoolis ja seda kasutatakse õppevahendina. Põhiline tema kasutusala on näidata üliõpilastele kuidas saab luua hajussüsteeme ja luua andme edastus kanaled kasutajate vahel. Et kasutajad saaksid hakkata kasutama võrgustiku eeliseid peavad nad selleks kirjutama koodi programmi nn “töö” ja toimetama seda läbivõrgu kõikidele gruppi kasutajatele ehk sõpradele. “Töö” saab olema käivitatud kõikidel arvutitel ja vastavalt etterkirjutatud operatsioonidele genereerib tulemuse, mida saadab töö alustajale.
Praegune F2F võrgustik toetab töö kirjutamist vaid ühes programmeerimis keeles Python[PYTHON-HOMEPAGE]. See keel on dünamiline skriptimise keel ja annab kergesti kirjutada erinevaid applikatsioone sõprade võrgu jaoks, kuid on selge, et ainult ühest keelest ei piisa ja eriti õpikeskkonna on vaja neid rohkem.
Magistritöö idee tuleneb sellest, et lubada kirjutada töid F2F võrgu jaoks võimalikult mitmel keelel, mis lubaks neil ise valida, mis keeles nad kirjutada tahavad ja et nad tingimata ei peaks juurde õppima Python keele. Uurimiste käigus, mis olid tehtud Tartu Ülikooli Hajussüsteemide rühmas olid valitud raamistik LLVM, mis lubas täiendada olemas oleva klient rakenduse nii, et see hakkaks toetama rohkem keeli, milles saaks töid kirjutada.
Tänu LLVM tehnoloogiale on võimalik luua nn “vahepealne esindus”. See on programmerimis keel, mis on instruktsioonide jada ja on loodud selleks, et maksimaalselt mugavalt luua sellest masina koodi. Selle keele tähtis omadus, et sama raamistik pakub vahendeid, et luua programme, mis oskavad genereerida mõnes teisest programmeerimis keelest “vahepealset teisendust”. Juba praegu on saadaval kompilaatorid, mis oskavad genereerida “vahepealset teisendust” populaarsetest keeltes nagu C, C++, Python, Fortran, Java.
Selle töö põhieesmärgiks oli uurida kuidas on võimalik teha virtuaal masin F2F töö koodi käivitamiseks. Uurimustest saadud informatsiooni kasutada praktikal ja täiendada F2F, nii et see hakkaks toetama LLVM “vahepealset esinduse” käivitamist, mis omakorda annab võimaluse kirjutada F2F tööd väga paljudes keeltes.
Lõputöö keel
inglise
Lõputöö tüüp
Magister - Infotehnoloogia
Juhendaja(d)
Ulrich Norbisrath
Kaitsmise aasta
2010