izpis_h1_title_alt

Praktičnost sintaksne analize s kombinatorji
ID GOLJAT, DAVID (Author), ID Čibej, Uroš (Mentor) More about this mentor... This link opens in a new window, ID Pretnar, Matija (Comentor)

.pdfPDF - Presentation file, Download (434,78 KB)
MD5: 5F50B047EBAF2C9FF948885C231A899B

Abstract
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'' 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.

Language:Slovenian
Keywords:sintaksni analizator, funkcijsko programiranje, OCaml, Rust
Work type:Bachelor thesis/paper
Typology:2.11 - Undergraduate Thesis
Organization:FRI - Faculty of Computer and Information Science
Year:2024
PID:20.500.12556/RUL-162712 This link opens in a new window
COBISS.SI-ID:214394883 This link opens in a new window
Publication date in RUL:26.09.2024
Views:129
Downloads:17
Metadata:XML DC-XML DC-RDF
:
Copy citation
Share:Bookmark and Share

Secondary language

Language:English
Title:Practicality of parser combinators
Abstract:
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'' 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.

Keywords:parser, functional programming, OCaml, Rust

Similar documents

Similar works from RUL:
Similar works from other Slovenian collections:

Back