dc.contributor.advisor | Parízek, Pavel | |
dc.creator | Ćerim, Harun | |
dc.date.accessioned | 2020-10-07T10:10:42Z | |
dc.date.available | 2020-10-07T10:10:42Z | |
dc.date.issued | 2020 | |
dc.identifier.uri | http://hdl.handle.net/20.500.11956/121344 | |
dc.description.abstract | Hlavním cílem této diplomové práce bylo zavedení funkční programovací (FP) knihovny s názvem Funk, která rozšiřuje C# s podporou konceptů přítomných ve funkčních programovacích jazycích, jako jsou F# a Scala. Funk využívá mnoho funkčních programovacích konceptů, včetně neměnnosti, sladění vzorů a různých typů monád, společně se silnějším psaním. Zavedení těchto konceptů do jazyka C# pomáhá vyhnout se mnoha chybám v běhu a vzorovému kódu a také umožňuje vývojářům psát kód C# deklarativně, nikoli imperativně, což usnadňuje každodenní vývoj softwaru a snižuje náchylnost k chybám. Kromě toho diplomová práce analyzuje a porovnává Funk se stávajícími funkčními programovacími knihovnami, jako je Language-ext a FuncSharp. Nakonec analyzuje nové funkce C# 8, které zahrnují nulovatelné typy odkazů a sladění vzorů a porovnává je s funkcemi knihovny Funk. | cs_CZ |
dc.description.abstract | The main goal of this thesis was to implement a functional programming (FP) library named Funk that extends C# with support for concepts present in functional programming languages, such as F# and Scala. Funk utilizes many functional programming concepts, including immutability, pattern matching, and various types of monads, together with stronger typing. Introduction of these concepts into C# helps in avoiding many runtime errors and boilerplate code, and it also lets developers write C# code in a declarative rather than in an imperative way, making the day-to-day software development easier and less error-prone. Additionally, the thesis analyzes and compares Funk with existing functional programming libraries such as Language-ext and FuncSharp. Finally, it analyzes the new features of C# 8, which include nullable reference types and pattern matching and compares them with the functionalities of the Funk library. | en_US |
dc.language | English | cs_CZ |
dc.language.iso | en_US | |
dc.publisher | Univerzita Karlova, Matematicko-fyzikální fakulta | cs_CZ |
dc.subject | csharp | cs_CZ |
dc.subject | funkční programování | cs_CZ |
dc.subject | teorie kategorií | cs_CZ |
dc.subject | monády | cs_CZ |
dc.subject | asynchronní programování | cs_CZ |
dc.subject | csharp | en_US |
dc.subject | functional programming | en_US |
dc.subject | category theory | en_US |
dc.subject | monads | en_US |
dc.subject | asynchronous programming | en_US |
dc.title | Extending C# with a Library of Functional Programming Concepts | en_US |
dc.type | diplomová práce | cs_CZ |
dcterms.created | 2020 | |
dcterms.dateAccepted | 2020-09-16 | |
dc.description.department | Katedra distribuovaných a spolehlivých systémů | cs_CZ |
dc.description.department | Department of Distributed and Dependable Systems | en_US |
dc.description.faculty | Faculty of Mathematics and Physics | en_US |
dc.description.faculty | Matematicko-fyzikální fakulta | cs_CZ |
dc.identifier.repId | 223566 | |
dc.title.translated | Knihovna rozšiřující jazyk C# o podporu konceptů funkcionálního programování | cs_CZ |
dc.contributor.referee | Ježek, Pavel | |
thesis.degree.name | Mgr. | |
thesis.degree.level | navazující magisterské | cs_CZ |
thesis.degree.discipline | Software and Data Engineering | en_US |
thesis.degree.discipline | Softwarové a datové inženýrství | cs_CZ |
thesis.degree.program | Computer Science | en_US |
thesis.degree.program | Informatika | cs_CZ |
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 | Softwarové a datové inženýrství | cs_CZ |
uk.degree-discipline.en | Software and Data Engineering | en_US |
uk.degree-program.cs | Informatika | cs_CZ |
uk.degree-program.en | Computer Science | en_US |
thesis.grade.cs | Velmi dobře | cs_CZ |
thesis.grade.en | Very good | en_US |
uk.abstract.cs | Hlavním cílem této diplomové práce bylo zavedení funkční programovací (FP) knihovny s názvem Funk, která rozšiřuje C# s podporou konceptů přítomných ve funkčních programovacích jazycích, jako jsou F# a Scala. Funk využívá mnoho funkčních programovacích konceptů, včetně neměnnosti, sladění vzorů a různých typů monád, společně se silnějším psaním. Zavedení těchto konceptů do jazyka C# pomáhá vyhnout se mnoha chybám v běhu a vzorovému kódu a také umožňuje vývojářům psát kód C# deklarativně, nikoli imperativně, což usnadňuje každodenní vývoj softwaru a snižuje náchylnost k chybám. Kromě toho diplomová práce analyzuje a porovnává Funk se stávajícími funkčními programovacími knihovnami, jako je Language-ext a FuncSharp. Nakonec analyzuje nové funkce C# 8, které zahrnují nulovatelné typy odkazů a sladění vzorů a porovnává je s funkcemi knihovny Funk. | cs_CZ |
uk.abstract.en | The main goal of this thesis was to implement a functional programming (FP) library named Funk that extends C# with support for concepts present in functional programming languages, such as F# and Scala. Funk utilizes many functional programming concepts, including immutability, pattern matching, and various types of monads, together with stronger typing. Introduction of these concepts into C# helps in avoiding many runtime errors and boilerplate code, and it also lets developers write C# code in a declarative rather than in an imperative way, making the day-to-day software development easier and less error-prone. Additionally, the thesis analyzes and compares Funk with existing functional programming libraries such as Language-ext and FuncSharp. Finally, it analyzes the new features of C# 8, which include nullable reference types and pattern matching and compares them with the functionalities of the Funk library. | 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 | 2 | |
uk.publication-place | Praha | cs_CZ |