| dc.contributor.advisor | Petříček, Tomáš | |
| dc.creator | Procházka, Jaromír | |
| dc.date.accessioned | 2026-04-15T14:43:48Z | |
| dc.date.available | 2026-04-15T14:43:48Z | |
| dc.date.issued | 2025 | |
| dc.identifier.uri | http://hdl.handle.net/20.500.11956/202616 | |
| dc.description.abstract | Functional languages such as Haskell and F# make code more testable, inherently thread safe and easier to reason about through their functional purity. However, the adoption of immutable data structures introduces efficiency costs, as many operations require copying rather than performing in-place modifications. To address this, the Koka language introduced a novel mechanism known as fully-in-place functional programming (FIP), which enables safe in-place updates while minimizing unnecessary memory allo- cations. Nonetheless, Koka's garbage collection and extensive feature set complicate the task of isolating FIP's specific memory efficiency advantages. The goal of this thesis is to design a minimal functional language called StaFip that supports fully in-place up- dates utilizing the FIP calculus and omitting garbage collection. This will allow for a comparison of the performance of the FIP approach against that of a conventional im- plementation for algorithms such as quicksort, red-black tree insertions, and finger tree insertions. The findings of this thesis demonstrate that a language employing the FIP calculus in a garbage collection-free environment can achieve a significant increase in performance and memory efficiency. | en_US |
| dc.description.abstract | Funkcionální jazyky jako Haskell a F# činí kód lépe testovatelným, inherentně více- vláknově bezpečným a snáze analyzovatelným díky omezení vedlejších efektů. Nicméně použití neměnných datových struktur přináší náklady z hlediska efektivity, protože mnoho operací vyžaduje kopírování namísto úprav na místě. Z tohoto důvodu jazyk Koka zavedl nový mechanismus zvaný fully in-place calculus (FIP kalkulus), který umožňuje bezpečné úpravy na konstantní paměti a zároveň se vyhýbá zbytečným alokacím. Správa paměti v Koce a jeho bohatá sada funkcionalit však ztěžují odlišení konkrétních přínosů FIP v oblasti úspory paměti. Cílem této práce je navrhnout minimální funkcionální jazyk jmé- nem StaFip, který podporuje fully in-place aktualizace za pomoci FIP kalkulu a který nevyužívá žádnou správu paměti (garbage collection). Jeho výkon testujeme vůči kon- venční implementaci algoritmu quicksort, vkládání do černo-červených stromů a prsto- vých stromů. Výsledky ukazují, že jazyk využívající FIP kalkulus v prostředí bez garbage collection může přinést znatelné zvýšení výkonu a úsporu paměti. | cs_CZ |
| dc.language | English | cs_CZ |
| dc.language.iso | en_US | |
| dc.publisher | Univerzita Karlova, Matematicko-fyzikální fakulta | cs_CZ |
| dc.subject | FIP|Compiler|Optimizing compile|Programming languages|functional programming | en_US |
| dc.subject | FIP|Překladače|Optimalizace překladače|Programovací jazyky|funkcionální programování | cs_CZ |
| dc.title | Benchmarking a baseline fully-in-place functional language compiler | en_US |
| dc.type | bakalářská práce | cs_CZ |
| dcterms.created | 2025 | |
| dcterms.dateAccepted | 2025-09-05 | |
| dc.description.department | Department of Distributed and Dependable Systems | en_US |
| dc.description.department | Katedra distribuovaných a spolehlivých systémů | cs_CZ |
| dc.description.faculty | Matematicko-fyzikální fakulta | cs_CZ |
| dc.description.faculty | Faculty of Mathematics and Physics | en_US |
| dc.identifier.repId | 281820 | |
| dc.title.translated | Návrh a testování FIP funkcionálního jazyka | cs_CZ |
| dc.contributor.referee | Bednárek, David | |
| thesis.degree.name | Bc. | |
| thesis.degree.level | bakalářské | cs_CZ |
| thesis.degree.discipline | Computer Science with specialisation in Programming and Software Development | en_US |
| thesis.degree.discipline | Informatika se specializací Programování a vývoj software | cs_CZ |
| thesis.degree.program | Informatika | cs_CZ |
| thesis.degree.program | Computer Science | en_US |
| uk.thesis.type | bakalářská práce | cs_CZ |
| uk.taxonomy.organization-cs | Matematicko-fyzikální fakulta::Katedra distribuovaných a spolehlivých systémů | cs_CZ |
| uk.taxonomy.organization-en | Faculty of Mathematics and Physics::Department of Distributed and Dependable Systems | en_US |
| uk.faculty-name.cs | Matematicko-fyzikální fakulta | cs_CZ |
| uk.faculty-name.en | Faculty of Mathematics and Physics | en_US |
| uk.faculty-abbr.cs | MFF | cs_CZ |
| uk.degree-discipline.cs | Informatika se specializací Programování a vývoj software | cs_CZ |
| uk.degree-discipline.en | Computer Science with specialisation in Programming and Software Development | en_US |
| uk.degree-program.cs | Informatika | cs_CZ |
| uk.degree-program.en | Computer Science | en_US |
| thesis.grade.cs | Výborně | cs_CZ |
| thesis.grade.en | Excellent | en_US |
| uk.abstract.cs | Funkcionální jazyky jako Haskell a F# činí kód lépe testovatelným, inherentně více- vláknově bezpečným a snáze analyzovatelným díky omezení vedlejších efektů. Nicméně použití neměnných datových struktur přináší náklady z hlediska efektivity, protože mnoho operací vyžaduje kopírování namísto úprav na místě. Z tohoto důvodu jazyk Koka zavedl nový mechanismus zvaný fully in-place calculus (FIP kalkulus), který umožňuje bezpečné úpravy na konstantní paměti a zároveň se vyhýbá zbytečným alokacím. Správa paměti v Koce a jeho bohatá sada funkcionalit však ztěžují odlišení konkrétních přínosů FIP v oblasti úspory paměti. Cílem této práce je navrhnout minimální funkcionální jazyk jmé- nem StaFip, který podporuje fully in-place aktualizace za pomoci FIP kalkulu a který nevyužívá žádnou správu paměti (garbage collection). Jeho výkon testujeme vůči kon- venční implementaci algoritmu quicksort, vkládání do černo-červených stromů a prsto- vých stromů. Výsledky ukazují, že jazyk využívající FIP kalkulus v prostředí bez garbage collection může přinést znatelné zvýšení výkonu a úsporu paměti. | cs_CZ |
| uk.abstract.en | Functional languages such as Haskell and F# make code more testable, inherently thread safe and easier to reason about through their functional purity. However, the adoption of immutable data structures introduces efficiency costs, as many operations require copying rather than performing in-place modifications. To address this, the Koka language introduced a novel mechanism known as fully-in-place functional programming (FIP), which enables safe in-place updates while minimizing unnecessary memory allo- cations. Nonetheless, Koka's garbage collection and extensive feature set complicate the task of isolating FIP's specific memory efficiency advantages. The goal of this thesis is to design a minimal functional language called StaFip that supports fully in-place up- dates utilizing the FIP calculus and omitting garbage collection. This will allow for a comparison of the performance of the FIP approach against that of a conventional im- plementation for algorithms such as quicksort, red-black tree insertions, and finger tree insertions. The findings of this thesis demonstrate that a language employing the FIP calculus in a garbage collection-free environment can achieve a significant increase in performance and memory efficiency. | en_US |
| uk.file-availability | V | |
| uk.grantor | Univerzita Karlova, Matematicko-fyzikální fakulta, Katedra distribuovaných a spolehlivých systémů | cs_CZ |
| thesis.grade.code | 1 | |
| uk.publication-place | Praha | cs_CZ |
| uk.thesis.defenceStatus | O | |