<?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>Lastništvo objektov namesto avtomatskega čistilca pomnilnika med lenim izračunom</dc:title><dc:creator>Bizjak,	Niki	(Avtor)
	</dc:creator><dc:creator>Slivnik,	Boštjan	(Mentor)
	</dc:creator><dc:subject>prevajalnik</dc:subject><dc:subject>nestroga semantika</dc:subject><dc:subject>len izračun</dc:subject><dc:subject>upravljanje s pomnilnikom</dc:subject><dc:subject>avtomatični čistilec pomnilnika</dc:subject><dc:subject>lastništvo objektov</dc:subject><dc:description>Pomnilnik je kljub uvedbi pomnilniške hierarhije še vedno najpočasnejši del računalniške arhitekture, zato je upravljanje z njim ključnega pomena pri hitrosti izvajanja programov. V zadnjih letih se predvsem na področju sistemskega programiranja vedno bolj uveljavlja programski jezik Rust, ki za čiščenje pomnilnika uporablja princip lastništva in izposoje, s katerima zna med prevajanjem zagotoviti predvidljivo in učinkovito sproščanje pomnilnika. V obsegu magistrskega dela nas zanima, ali je mogoče princip lastništva implementirati v len funkcijski programski jezik STG, ki se uporablja pri prevajanju jezika Haskell. V magistrskem delu implementiramo simulator STG stroja, v katerega dodamo analizo lastništva. Pri tem se izkaže, da s tem zelo omejimo delovanje jezika, saj onemogočimo deljenje objektov. Predstavimo dve rešitvi: globoko kloniranje objektov, za katerega se izkaže, da je zelo časovno in prostorsko potratno, in model lastništva, ki zahteva analizo premikov in izposoj. A izkaže se, da analize izposoj ni mogoče implementirati brez uvedbe bodisi dodatnih informacij o izračunanosti objektov bodisi neke oblike neučakanosti v len programski jezik.</dc:description><dc:date>2024</dc:date><dc:date>2024-09-24 12:00:00</dc:date><dc:type>Magistrsko delo/naloga</dc:type><dc:identifier>162493</dc:identifier><dc:identifier>VisID: 37027</dc:identifier><dc:identifier>COBISS_ID: 210384387</dc:identifier><dc:language>sl</dc:language></metadata>
