dc.contributor.advisor | Ježek, Pavel | |
dc.creator | Husák, Tomáš | |
dc.date.accessioned | 2024-11-28T22:42:29Z | |
dc.date.available | 2024-11-28T22:42:29Z | |
dc.date.issued | 2024 | |
dc.identifier.uri | http://hdl.handle.net/20.500.11956/190675 | |
dc.description.abstract | C# je silně typovaný jazyk využívající typovou inferenci k ušetření typových ano- tací napsaných programátorem. Tato typová inference však není tak silná jako v jiných programovacích jazycích jako Rust nebo Haskell. Tato práce si kladla za cíl navrhnout vylepšení jazyka C#, které by zlepšilo současnou typovou inferenci a které by pravděpodobně bylo přijato týmem návrhářů jazyka C#. Pro tento cíl jsme analyzovali typovou infer- enci v jazyce Rust a určili nezbytné požadavky jazyka a omezení typové inference na základě Hindley-Millnerovy formalizace typové inference. Tato analýza byla použita k návrhu vylepšení jazyka sestávajícího ze dvou částí. První částí je změna specifikace C# popisující vylepšení úpravou formální specifikace C#. Tato část byla představena týmu pro návrh jazyka C#, kterému se návrh líbil, a rozhodl pokračovat v ladění zmíněného vylepšení které by se objevilo v budoucí verzi C#. Druhá část je implementace vylepšení v oficiální kompilátoru jazyka C#, Roslyn. Implementace je testována pomocí originálních testů kompilátoru a nových testů ověřující funkčnost vylepšení. 1 | cs_CZ |
dc.description.abstract | C# is a strongly typed language utilizing type inference to save type annotations writ- ten by a programmer. However, the type inference is not as strong as other programming languages like Rust or Haskell. This thesis goal was to propose the C# language improve- ment which would improve the current type inference and would be likely accepted by the C# language design team. For this achievement, we analyzed Rust's type inference and observed necessary language requirements and type inference restrictions based on Hindley-Millner's formalization of type inference. These observations were used to pro- pose a language improvement consisting of two parts. The first part is a C# specification change describing the improvement by adjusting formal C# specification. This part was presented to the C# language design team which resulted in a positive reaction where the team decided to keep moving forward with the proposal to make it available in the future C# language version. The second part is an implementation of the improvement in the official C# language compiler, Roslyn. The implementation is tested by using the original compiler tests and new tests testing the proposal functionality. 1 | en_US |
dc.language | Čeština | cs_CZ |
dc.language.iso | cs_CZ | |
dc.publisher | Univerzita Karlova, Matematicko-fyzikální fakulta | cs_CZ |
dc.subject | C#|Roslyn|Type inference | en_US |
dc.subject | C#|Roslyn|Typová inference | cs_CZ |
dc.title | Vylepšení typové inference v jazyce C# | cs_CZ |
dc.type | diplomová práce | cs_CZ |
dcterms.created | 2024 | |
dcterms.dateAccepted | 2024-06-11 | |
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 | 259059 | |
dc.title.translated | Improving Type Inference in the C# Language | en_US |
dc.contributor.referee | Parízek, Pavel | |
thesis.degree.name | Mgr. | |
thesis.degree.level | navazující magisterské | cs_CZ |
thesis.degree.discipline | Computer Science - Software Systems | en_US |
thesis.degree.discipline | Informatika - Softwarové systémy | cs_CZ |
thesis.degree.program | Computer Science - Software Systems | en_US |
thesis.degree.program | Informatika - Softwarové systémy | cs_CZ |
uk.thesis.type | diplomová 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 - Softwarové systémy | cs_CZ |
uk.degree-discipline.en | Computer Science - Software Systems | en_US |
uk.degree-program.cs | Informatika - Softwarové systémy | cs_CZ |
uk.degree-program.en | Computer Science - Software Systems | en_US |
thesis.grade.cs | Výborně | cs_CZ |
thesis.grade.en | Excellent | en_US |
uk.abstract.cs | C# je silně typovaný jazyk využívající typovou inferenci k ušetření typových ano- tací napsaných programátorem. Tato typová inference však není tak silná jako v jiných programovacích jazycích jako Rust nebo Haskell. Tato práce si kladla za cíl navrhnout vylepšení jazyka C#, které by zlepšilo současnou typovou inferenci a které by pravděpodobně bylo přijato týmem návrhářů jazyka C#. Pro tento cíl jsme analyzovali typovou infer- enci v jazyce Rust a určili nezbytné požadavky jazyka a omezení typové inference na základě Hindley-Millnerovy formalizace typové inference. Tato analýza byla použita k návrhu vylepšení jazyka sestávajícího ze dvou částí. První částí je změna specifikace C# popisující vylepšení úpravou formální specifikace C#. Tato část byla představena týmu pro návrh jazyka C#, kterému se návrh líbil, a rozhodl pokračovat v ladění zmíněného vylepšení které by se objevilo v budoucí verzi C#. Druhá část je implementace vylepšení v oficiální kompilátoru jazyka C#, Roslyn. Implementace je testována pomocí originálních testů kompilátoru a nových testů ověřující funkčnost vylepšení. 1 | cs_CZ |
uk.abstract.en | C# is a strongly typed language utilizing type inference to save type annotations writ- ten by a programmer. However, the type inference is not as strong as other programming languages like Rust or Haskell. This thesis goal was to propose the C# language improve- ment which would improve the current type inference and would be likely accepted by the C# language design team. For this achievement, we analyzed Rust's type inference and observed necessary language requirements and type inference restrictions based on Hindley-Millner's formalization of type inference. These observations were used to pro- pose a language improvement consisting of two parts. The first part is a C# specification change describing the improvement by adjusting formal C# specification. This part was presented to the C# language design team which resulted in a positive reaction where the team decided to keep moving forward with the proposal to make it available in the future C# language version. The second part is an implementation of the improvement in the official C# language compiler, Roslyn. The implementation is tested by using the original compiler tests and new tests testing the proposal functionality. 1 | 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 | |