<?xml version="1.0" encoding="utf-8"?>
<Gradivo ID="162712" NadgradivoID="0" NRID="25178464" OceID="0" DomainUrl="https://repozitorij.uni-lj.si/" IzpisPolniUrl="https://repozitorij.uni-lj.si/IzpisGradiva.php?lang=slv&amp;id=162712" StOgledov="725" StPrenosov="168" StOcen="0" VsotaOcen="0" DatumIzvoza="2026-07-10 01:53:46" OcenaSkupna="0" StPodgradiv="0" StudijskiProgramEvsID="1000468" JeIndeksirano="0" JeVecAvtorjev="0" DovoliZahtevkeZaDostop="0">
  <PID Url="http://hdl.handle.net/20.500.12556/RUL-162712">20.500.12556/RUL-162712</PID>
  <Naslov>Praktičnost sintaksne analize s kombinatorji</Naslov>
  <Podnaslov></Podnaslov>
  <TujJezik_Naslov>Practicality of parser combinators</TujJezik_Naslov>
  <TujJezik_Podnaslov></TujJezik_Podnaslov>
  <Opis>Sintaksni analizatorji so ključno orodje za pretvorbo programske ali podatkovno opisne kode v računalnikom razumljivo obliko. Zgradimo jih lahko z različnimi metodami in pristopi analize. Mi bomo podrobneje pogledali pristop grajenja analizatorja z uporabo kombinatorjev. Ta pristop izvira iz funkcijskega programiranja, kjer manjše, enostavne funkcije združujemo v kompleksnejše. Želimo ugotoviti, ali je takšen način pisanja kode lažji in bolj pregleden kot ``klasični&#039;&#039; pristop. Po principu kombiniranja bomo implementirali sintaksni analizator za podatkovno opisni jezik JSON. Sprva ga bomo implementirali popolnoma funkcijsko v programskem jeziku OCaml, nato pa bomo isti analizator implementirali še v programskem jeziku Rust, ki pa ni popolnoma funkcijski. Implementacijo bomo primerjali s klasično metodo z generatorji analizatorjev in z moderno programsko knjižnico. Zanima nas, ali je pisanje analizatorjev na tak način lažje. Izkaže se, da to drži, ugotovili pa bomo tudi, da glede hitrosti ta pristop ni optimalen.</Opis>
  <TujJezik_Opis>Parsers are a key tool we use to convert program code or a data description into a form computers understand. We can build them using many different methods and approaches. We shall take a closer look at the method of building parsers using combinators. This approach originates from functional programming, where small and simple functions are combined to form complex ones. We want to find out if this way of writing code is easier and more transparent than the ``classic&#039;&#039; approach. We will implement a JSON parser based on the principle of combining. Initially, we will implement it fully functionally in the OCaml programming language and then in the Rust programming language, which is not fully functional. We will compare the Rust implementation with the classic approach using generators and finally a modern software library. We want to know if writing parsers is easier this way. It turns out that that this is true. However, we also discover that such an approach is not optimal for performance.</TujJezik_Opis>
  <KljucneBesede>
    <Beseda>sintaksni analizator</Beseda>
    <Beseda>funkcijsko programiranje</Beseda>
    <Beseda>OCaml</Beseda>
    <Beseda>Rust</Beseda>
  </KljucneBesede>
  <TujJezik_KljucneBesede>
    <Beseda>parser</Beseda>
    <Beseda>functional programming</Beseda>
    <Beseda>OCaml</Beseda>
    <Beseda>Rust</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>2024-09-26 12:05:01</DatumVstavljanja>
  <DatumObjave>2024-09-26 12:05:18</DatumObjave>
  <DatumSpremembe>2024-11-11 06:37:09</DatumSpremembe>
  <DatumTrajnegaHranjenja>0000-00-00 00:00:00</DatumTrajnegaHranjenja>
  <LetoIzida>2024</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></EmbargoDo>
  <VrstaEmbarga ID="1" Naziv="Takojšnja javna objava" OpenAIREDostop="openAccess"></VrstaEmbarga>
  <Osebe>
    <Oseba ID="139042" Ime="DAVID" Priimek="GOLJAT" AltIme="" VlogaID="70" VlogaNaziv="Avtor" ConorID="" Afiliacija="" ArrsID="0" ORCID=""></Oseba>
    <Oseba ID="23603" Ime="Uroš" Priimek="Čibej" AltIme="U. Čibej; Uros Cibej" VlogaID="991" VlogaNaziv="Mentor" ConorID="23176547" Afiliacija="" ArrsID="23400" ORCID=""></Oseba>
    <Oseba ID="120200" Ime="Matija" Priimek="Pretnar" AltIme="" VlogaID="994" VlogaNaziv="Komentor" ConorID="" Afiliacija="" ArrsID="0" ORCID=""></Oseba>
  </Osebe>
  <Identifikatorji>
    <Identifikator ID="16" Sifra="VisID" Naziv="VisID" URL="">37373</Identifikator>
    <Identifikator ID="3" Sifra="CobissID" Naziv="COBISS_ID" URL="https://plus.cobiss.net/cobiss/si/sl/bib/214394883">214394883</Identifikator>
  </Identifikatorji>
  <Datoteke>
    <Datoteka ID="192128" DatotekaNRID="13932716" 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="445219" VelikostDatotekeKratko="434,78 KB" DatumVstavljanja="2024-09-26 12:05:19" JeZbrisana="false" JeJavnoVidna="true" JeIndeksirana="true" JeVidno="true" VidnoOd="01.01.1970" Zaporedje="0">
      <Naziv>Goljat_David_-_Prakticnost_sintaksne_analize_s_kombinatorji.pdf</Naziv>
      <OrgNaziv>Goljat_David_-_Prakticnost_sintaksne_analize_s_kombinatorji.pdf</OrgNaziv>
      <URL></URL>
      <Opis></Opis>
      <OpisTujJezik></OpisTujJezik>
      <UrlObdelave></UrlObdelave>
      <FrekvencaAzuriranjaID>1</FrekvencaAzuriranjaID>
      <Verzija></Verzija>
      <MD5>5F50B047EBAF2C9FF948885C231A899B</MD5>
      <SHA256>dc3b799b4d963fb4fb613aa3eaeffcbcb657293dfcbf2962474d410aeaae4b30</SHA256>
      <UUID>b583e473-7bee-11ef-b232-0050569b8976</UUID>
      <PID></PID>
      <PrenosPolniUrl>https://repozitorij.uni-lj.si/Dokument.php?lang=slv&amp;id=192128</PrenosPolniUrl>
      <Vsebine>
        <Vsebina TipVsebine="GoloBesedilo" JezikID="1060" Oznaka="" Dolzina="108349"></Vsebina>
      </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="2.11" Koda="2.11" Naziv="Diplomsko delo" SchemaOrg="Thesis"></TipologijaDela>
  <Ostalo>
    <StIrodsDatotek>0</StIrodsDatotek>
    <StDatotekPodTrajnimEmbargom>0</StDatotekPodTrajnimEmbargom>
    <StDatotekZOmejenimDostopom>0</StDatotekZOmejenimDostopom>
  </Ostalo>
</Gradivo>
