Thesis (Selection of subject)Thesis (Selection of subject)(version: 368)
Thesis details
   Login via CAS
Extending C# with a Library of Functional Programming Concepts
Thesis title in Czech: Knihovna rozšiřující jazyk C# o podporu konceptů funkcionálního programování
Thesis title in English: Extending C# with a Library of Functional Programming Concepts
Key words: csharp, funkční programování, teorie kategorií, monády, asynchronní programování
English key words: csharp, functional programming, category theory, monads, asynchronous programming
Academic year of topic announcement: 2019/2020
Thesis type: diploma thesis
Thesis language: angličtina
Department: Department of Distributed and Dependable Systems (32-KDSS)
Supervisor: doc. RNDr. Pavel Parízek, Ph.D.
Author: hidden - assigned and confirmed by the Study Dept.
Date of registration: 12.03.2020
Date of assignment: 12.03.2020
Confirmed by Study dept. on: 24.03.2020
Date and time of defence: 16.09.2020 09:00
Date of electronic submission:29.07.2020
Date of submission of printed version:26.07.2020
Date of proceeded defence: 16.09.2020
Opponents: Mgr. Pavel Ježek, Ph.D.
 
 
 
Guidelines
Bugs in software are very common due to mistakes developers make in the source code. For example, in the case of the programs written in the C# programming language, some of the most common exceptions that occur during runtime of the application are System.NullReferenceException and System.InvalidCastException.
The main goal of this thesis project is to implement a library that will extend the C# programming language with support for concepts present in functional programming languages, such as F# and Scala, in order to address the kinds of issues and bugs mentioned above. The library will utilize many functional programming concepts, including immutability, pattern matching and monads, together with stronger typing. Introduction of these concepts into the C# language will help in avoiding many bugs and boilerplate code, and it will also let 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.
The following specific tasks should also be performed within the scope of this thesis project:
- Analyze and compare this library with existing functional libraries such as language-ext and FuncSharp.
- Analyze new features of the C# 8.0 language that include nullable reference types and pattern matching.
The library will be released under an open source license.
References
1. Paul Louth. language-ext, https://github.com/louthy/language-ext
2. Jan Široký. FuncSharp, https://github.com/siroky/FuncSharp
3. Jon Skeet. C# in Depth - 4th Edition. Manning Publications, 2019, https://www.manning.com/books/c-sharp-in-depth-fourth-edition
4. Enrico Buonanno. Functional Programming in C#. Manning Publications, 2017, https://www.manning.com/books/functional-programming-in-c-sharp
5. Isaac Abraham. Get Programming with F#. Manning Publications, 2018, https://www.manning.com/books/get-programming-with-f-sharp
 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html