<?xml version="1.0"?>
<metadata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:title>Večkratno razpošiljanje v Javi z obdelavo anotacij</dc:title><dc:creator>Kišek,	Nejc	(Avtor)
	</dc:creator><dc:creator>Mihelič,	Jurij	(Mentor)
	</dc:creator><dc:subject>razpošiljanje</dc:subject><dc:subject>večkratno razpošiljanje</dc:subject><dc:subject>anotacije</dc:subject><dc:subject>obdelava anotacij</dc:subject><dc:subject>generiranje kode</dc:subject><dc:subject>Java</dc:subject><dc:subject>javac</dc:subject><dc:description>Razpošiljanje je mehanizem, s katerim se v objektno usmerjenih programskih jezikih razlikuje med metodami, ki imajo enako ime in število parametrov. Deluje tako, da ob klicu metode na podlagi dinamičnih tipov podanih parametrov izbere najustreznejšo metodo. Enojno razpošiljanje med izvajanjem za to uporabi le tip enega parametra (prejemnika), medtem ko se tipi ostalih ugotovijo med prevajanjem. Pri večkratnem razpošiljanju se tipe vseh parametrov ugotovi šele med izvajanjem, kar je počasnejše, a bolj fleksibilno. V Javi in mnogih drugih objektno usmerjenih programskih jezikih je podprto le enojno razpošiljanje, večkratnega pa lahko na različne načine simuliramo.
Cilj naloge je bil izdelati knjižnico, s pomočjo katere se na podlagi anotacij, ki jih dodamo v običajen javanski program, generira koda za simuliranje večkratnega razpošiljanja. Logika za razpošiljanje se generira šele med prevajanjem, zato je lahko poljubno zapletena, ne da bi vplivala na zapletenost izvorne kode. Pri uporabi te knjižnice so edina sprememba med pisanjem programa dodatne anotacije, kar je enostavnejše za uporabo kot podobne obstoječe rešitve, ki potrebujejo posebne prevajalnike ali pa zahtevajo klicanje metod na povsem drugačen način.
Knjižnica je izvedena v treh različicah, ki uporabljajo različne načine za simuliranje večkratnega razpošiljanja: s pomočjo odločitvenega drevesa z neposrednim preverjanjem tipov, z uporabo odsevnosti in z razširjenim načrtovalskim vzorcem obiskovalec. Od teh sta prva dva podobna načinom, ki so uporabljeni v obstoječih rešitvah, tretji pa je manj znan in o njem do sedaj ni mogoče najti podrobne literature. V sklopu naloge so predstavljene implementacije, pa tudi rezultati eksperimentalne primerjave teh treh načinov, kjer primerjamo hitrost izvajanja, hitrost prevajanja in velikost prevedene kode.</dc:description><dc:date>2018</dc:date><dc:date>2018-11-08 13:50:02</dc:date><dc:type>Magistrsko delo/naloga</dc:type><dc:identifier>105199</dc:identifier><dc:identifier>VisID: 20921</dc:identifier><dc:language>sl</dc:language></metadata>
