Zobrazit minimální záznam

Improving Type Inference in the C# Language
dc.contributor.advisorJežek, Pavel
dc.creatorHusák, Tomáš
dc.date.accessioned2024-11-28T22:42:29Z
dc.date.available2024-11-28T22:42:29Z
dc.date.issued2024
dc.identifier.urihttp://hdl.handle.net/20.500.11956/190675
dc.description.abstractC# 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í. 1cs_CZ
dc.description.abstractC# 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. 1en_US
dc.languageČeštinacs_CZ
dc.language.isocs_CZ
dc.publisherUniverzita Karlova, Matematicko-fyzikální fakultacs_CZ
dc.subjectC#|Roslyn|Type inferenceen_US
dc.subjectC#|Roslyn|Typová inferencecs_CZ
dc.titleVylepšení typové inference v jazyce C#cs_CZ
dc.typediplomová prácecs_CZ
dcterms.created2024
dcterms.dateAccepted2024-06-11
dc.description.departmentDepartment of Distributed and Dependable Systemsen_US
dc.description.departmentKatedra distribuovaných a spolehlivých systémůcs_CZ
dc.description.facultyMatematicko-fyzikální fakultacs_CZ
dc.description.facultyFaculty of Mathematics and Physicsen_US
dc.identifier.repId259059
dc.title.translatedImproving Type Inference in the C# Languageen_US
dc.contributor.refereeParízek, Pavel
thesis.degree.nameMgr.
thesis.degree.levelnavazující magisterskécs_CZ
thesis.degree.disciplineComputer Science - Software Systemsen_US
thesis.degree.disciplineInformatika - Softwarové systémycs_CZ
thesis.degree.programComputer Science - Software Systemsen_US
thesis.degree.programInformatika - Softwarové systémycs_CZ
uk.thesis.typediplomová prácecs_CZ
uk.taxonomy.organization-csMatematicko-fyzikální fakulta::Katedra distribuovaných a spolehlivých systémůcs_CZ
uk.taxonomy.organization-enFaculty of Mathematics and Physics::Department of Distributed and Dependable Systemsen_US
uk.faculty-name.csMatematicko-fyzikální fakultacs_CZ
uk.faculty-name.enFaculty of Mathematics and Physicsen_US
uk.faculty-abbr.csMFFcs_CZ
uk.degree-discipline.csInformatika - Softwarové systémycs_CZ
uk.degree-discipline.enComputer Science - Software Systemsen_US
uk.degree-program.csInformatika - Softwarové systémycs_CZ
uk.degree-program.enComputer Science - Software Systemsen_US
thesis.grade.csVýborněcs_CZ
thesis.grade.enExcellenten_US
uk.abstract.csC# 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í. 1cs_CZ
uk.abstract.enC# 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. 1en_US
uk.file-availabilityV
uk.grantorUniverzita Karlova, Matematicko-fyzikální fakulta, Katedra distribuovaných a spolehlivých systémůcs_CZ
thesis.grade.code1
uk.publication-placePrahacs_CZ
uk.thesis.defenceStatusO


Soubory tohoto záznamu

Thumbnail
Thumbnail
Thumbnail
Thumbnail
Thumbnail
Thumbnail
Thumbnail

Tento záznam se objevuje v následujících sbírkách

Zobrazit minimální záznam


© 2017 Univerzita Karlova, Ústřední knihovna, Ovocný trh 560/5, 116 36 Praha 1; email: admin-repozitar [at] cuni.cz

Za dodržení všech ustanovení autorského zákona jsou zodpovědné jednotlivé složky Univerzity Karlovy. / Each constituent part of Charles University is responsible for adherence to all provisions of the copyright law.

Upozornění / Notice: Získané informace nemohou být použity k výdělečným účelům nebo vydávány za studijní, vědeckou nebo jinou tvůrčí činnost jiné osoby než autora. / Any retrieved information shall not be used for any commercial purposes or claimed as results of studying, scientific or any other creative activities of any person other than the author.

DSpace software copyright © 2002-2015  DuraSpace
Theme by 
@mire NV