<?xml version="1.0" encoding="utf-8"?>
<Gradivo ID="186431" NadgradivoID="0" NRID="29175030" OceID="0" DomainUrl="https://repozitorij.uni-lj.si/" IzpisPolniUrl="https://repozitorij.uni-lj.si/IzpisGradiva.php?lang=slv&amp;id=186431" StOgledov="175" StPrenosov="46" StOcen="0" VsotaOcen="0" DatumIzvoza="2026-09-26 19:20:20" OcenaSkupna="0" StPodgradiv="0" StudijskiProgramEvsID="1000468" JeIndeksirano="0" JeVecAvtorjev="0" DovoliZahtevkeZaDostop="0">
  <PID Url="http://hdl.handle.net/20.500.12556/RUL-186431">20.500.12556/RUL-186431</PID>
  <Naslov>Jezikovni strežnik na osnovi inkrementalne LL sintaksne analize</Naslov>
  <Podnaslov></Podnaslov>
  <TujJezik_Naslov>Language Server based on Incremental LL Parsing</TujJezik_Naslov>
  <TujJezik_Podnaslov></TujJezik_Podnaslov>
  <Opis>Med urejanjem programa posamezna sprememba praviloma vpliva le na majhen del dokumenta. V diplomskem delu obravnavamo inkrementalno sintaksno in semantično analizo programov v učnem jeziku Prev, katere cilj je ponovno uporabiti čim več rezultatov predhodne analize. Sintaksni del temelji na inkrementalni LL(1) analizi. Njeno delovanje podrobno utemeljimo in jo razširimo z obnovo po napakah za obravnavo nepopolnih programov. Pri semantični analizi razreševanje imen izvedemo z drevesom dosegov, pri preverjanju tipov pa vpliv sprememb določimo na podlagi zabeleženih odvisnosti. Razvite postopke združimo v jezikovni strežnik za Prev, ki rezultate analize uporablja za podporo funkcionalnostim razvojnega okolja. Učinkovitost pristopa ovrednotimo na programih različnih velikosti in pri različnih vrstah sprememb ter pokažemo, da lahko inkrementalna analiza bistveno skrajša čas ponovne obdelave dokumenta.</Opis>
  <TujJezik_Opis>When a program is edited, an individual change typically affects only a small part of its structure. In this thesis, we present an approach to incremental syntax and semantic analysis of programs written in the educational language Prev, with the aim of reusing as many previously computed results as possible. For syntax analysis, we use an incremental LL(1) parser. We provide a correctness argument for the algorithm and extend it with simple table-driven error recovery to handle incomplete programs. Our semantic analysis is split into name resolution and type checking. Name resolution uses a scope tree, while type checking relies on recorded dependencies to determine which results need to be recomputed after a change. We integrate the resulting pipeline into a language server for Prev and evaluate its performance on programs of different sizes and under different types of changes, demonstrating that incremental analysis can significantly reduce the time required to reanalyze a program.</TujJezik_Opis>
  <KljucneBesede>
    <Beseda>inkrementalna sintaksna analiza</Beseda>
    <Beseda>LL(1) analiza</Beseda>
    <Beseda>jezikovni strežnik</Beseda>
    <Beseda>inkrementalna semantična analiza</Beseda>
    <Beseda>razreševanje imen</Beseda>
    <Beseda>preverjanje tipov</Beseda>
  </KljucneBesede>
  <TujJezik_KljucneBesede>
    <Beseda>Incremental Parsing</Beseda>
    <Beseda>LL(1) Parsing</Beseda>
    <Beseda>Language Server</Beseda>
    <Beseda>Incremental Semantic Analysis</Beseda>
    <Beseda>Name Resolution</Beseda>
    <Beseda>Type Checking</Beseda>
  </TujJezik_KljucneBesede>
  <Potrjeno>true</Potrjeno>
  <JeZaklenjeno>false</JeZaklenjeno>
  <JeRecenzirano>false</JeRecenzirano>
  <Zaloznik></Zaloznik>
  <Izvor></Izvor>
  <Jezik ID="1060" ISO639-3="slv">Slovenski jezik</Jezik>
  <TujJezik ID="1033" ISO639-3="eng">Angleški jezik</TujJezik>
  <Povezave></Povezave>
  <Pokrivanje></Pokrivanje>
  <CasovnoPokritje></CasovnoPokritje>
  <AvtorskePravice></AvtorskePravice>
  <VrstaGradiva ID="mb11" DRIVER="info:eu-repo/semantics/bachelorThesis">Diplomsko delo/naloga</VrstaGradiva>
  <DatumVstavljanja>2026-09-01 13:25:45</DatumVstavljanja>
  <DatumObjave>2026-09-01 13:25:53</DatumObjave>
  <DatumSpremembe>2026-09-03 04:38:21</DatumSpremembe>
  <DatumTrajnegaHranjenja>0000-00-00 00:00:00</DatumTrajnegaHranjenja>
  <LetoIzida>2026</LetoIzida>
  <LetoIzidaDo>0</LetoIzidaDo>
  <KrajIzida></KrajIzida>
  <LetoIzvedbe>0</LetoIzvedbe>
  <KrajIzvedbe></KrajIzvedbe>
  <Opomba></Opomba>
  <StStrani></StStrani>
  <StevilcenjeNivo1></StevilcenjeNivo1>
  <StevilcenjeNivo2></StevilcenjeNivo2>
  <Kronologija></Kronologija>
  <Patent_Stevilka></Patent_Stevilka>
  <Patent_DatumVeljavnosti>0000-00-00</Patent_DatumVeljavnosti>
  <VerzijaDokumenta>NiDoloceno</VerzijaDokumenta>
  <StatusObjaveDrugje>NiDoloceno</StatusObjaveDrugje>
  <VrstaStroskaObjave>NiDoloceno</VrstaStroskaObjave>
  <DatumPoslanoVRecenzijo>0000-00-00</DatumPoslanoVRecenzijo>
  <DatumSprejetjaClanka>0000-00-00</DatumSprejetjaClanka>
  <DatumObjaveClanka>0000-00-00</DatumObjaveClanka>
  <EmbargoDo>1970-01-01</EmbargoDo>
  <VrstaEmbarga ID="1" Naziv="Takojšnja javna objava" OpenAIREDostop="openAccess"></VrstaEmbarga>
  <Osebe>
    <Oseba ID="164640" Ime="Denis" Priimek="Balant" AltIme="" VlogaID="70" VlogaNaziv="Avtor" ConorID="" Afiliacija="" ArrsID="0" ORCID=""></Oseba>
    <Oseba ID="23518" Ime="Boštjan" Priimek="Slivnik" AltIme="" VlogaID="991" VlogaNaziv="Mentor" ConorID="3746915" Afiliacija="" ArrsID="12766" ORCID=""></Oseba>
  </Osebe>
  <Identifikatorji>
    <Identifikator ID="16" Sifra="VisID" Naziv="VisID" URL="">38868</Identifikator>
  </Identifikatorji>
  <Datoteke>
    <Datoteka ID="245686" DatotekaNRID="14775691" NamenDatotekeID="2" NamenDatoteke="Predstavitvena datoteka" FormatDatotekeID="2" FormatDatoteke=".pdf" MIME="application/pdf" IkonaFormata="pdf.png" IkonaFormataPolniUrl="https://repozitorij.uni-lj.si/teme/rulDev/img/fileTypes/pdf.png" VelikostDatoteke="728201" VelikostDatotekeKratko="711,13 KB" DatumVstavljanja="2026-09-01 13:25:54" JeZbrisana="false" JeJavnoVidna="true" JeIndeksirana="false" JeVidno="true" VidnoOd="01.01.1970" Zaporedje="0">
      <Naziv>Balant_Denis_-_Jezikovni_streznik_na_osnovi_inkrementalne_LL_sintaksne_analize.pdf</Naziv>
      <OrgNaziv>Balant_Denis_-_Jezikovni_streznik_na_osnovi_inkrementalne_LL_sintaksne_analize.pdf</OrgNaziv>
      <URL></URL>
      <Opis></Opis>
      <OpisTujJezik></OpisTujJezik>
      <UrlObdelave></UrlObdelave>
      <FrekvencaAzuriranjaID>1</FrekvencaAzuriranjaID>
      <Verzija></Verzija>
      <MD5>842B339813DFECE2759B383C3BB0C759</MD5>
      <SHA256>ce901ad18c6a10b3d5122fdcd376c635fa9dfe53e54e88877326df23de184ae7</SHA256>
      <UUID>76f7709f-a5f7-11f1-9b0d-0050569b8976</UUID>
      <PID></PID>
      <PrenosPolniUrl>https://repozitorij.uni-lj.si/Dokument.php?lang=slv&amp;id=245686</PrenosPolniUrl>
      <Vsebine>
      </Vsebine>
    </Datoteka>
  </Datoteke>
  <Organizacije>
    <Organizacija OrganizacijaID="25" Kratica="FRI" ZavodEvsID="0000066" Logo="" LogoPolniUrl="https://repozitorij.uni-lj.si/teme/rulDev/img/logo/">Fakulteta za računalništvo in informatiko</Organizacija>
  </Organizacije>
  <OrganizacijeVira>
  </OrganizacijeVira>
  <MetodeZbiranjaPodatkov>
  </MetodeZbiranjaPodatkov>
  <TipologijaDela ID="0" Koda="0" Naziv="Ni določena" SchemaOrg="CreativeWork"></TipologijaDela>
  <Ostalo>
    <StIrodsDatotek>0</StIrodsDatotek>
    <StDatotekPodTrajnimEmbargom>0</StDatotekPodTrajnimEmbargom>
    <StDatotekZOmejenimDostopom>0</StDatotekZOmejenimDostopom>
  </Ostalo>
</Gradivo>
