dc.contributor.advisor | Kratochvíl, Miroslav | |
dc.creator | Klepl, Jiří | |
dc.date.accessioned | 2020-10-05T10:09:26Z | |
dc.date.available | 2020-10-05T10:09:26Z | |
dc.date.issued | 2020 | |
dc.identifier.uri | http://hdl.handle.net/20.500.11956/121006 | |
dc.description.abstract | Jazyk C, i přes své stáří, stále patří mezi přední jazyky programování počítačových systémů. Jeho ceněnou přednosti je, že uživateli poskytuje takřka úplnou kontrolu nad správou paměti a nad prováděnými výpočty. C však snáší kritiku za to, že v něm chybí prvky umožňující generické programování, což se v C kompenzuje používáním preprocesorových maker, což zvyšuje náchylnost na uživatelské chyby. Tento problém již řeší jazyk C++ už od počátků svého vývoje, ale spousta vývojářů počítačových systémů jej odmítá pro jeho komplexitu a netranspar- entnost kódu. Předkládáme tedy návrh na jednodušší řešení užitím typového systému Hindley-Milner. Toto řešení pak jen za drobých úprav syntaxe jazyka C poskytne mnohem vyšší expresivitu jazyka. 1 | cs_CZ |
dc.description.abstract | The C language, despite its age, is one of the main languages in systems development. It is valued for giving the user almost complete control over the memory management and the computations the program written in it performs. However, a large portion of criticism of C arises from the lack of generic programming features. C compensates that by utilizing preprocessor macros, which are prone to user errors. This problem has been addressed in the early stages of the development of the C++ language, but many systems developers refuse C++ because of its complexity and non-transparency of the code. We propose a simpler solution by applying the Hindley-Milner type sys- tem extended by Haskell type classes and type constructors. We will show that this approach is viable even with minimal changes to the syntax of C, but giving it much higher expressiveness. 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 | překladače | cs_CZ |
dc.subject | programovací jazyky | cs_CZ |
dc.subject | typové systémy | cs_CZ |
dc.subject | compilers | en_US |
dc.subject | programming languages | en_US |
dc.subject | type systems | en_US |
dc.title | Typová inference a polymorfismus pro jazyk C | cs_CZ |
dc.type | bakalářská práce | cs_CZ |
dcterms.created | 2020 | |
dcterms.dateAccepted | 2020-09-14 | |
dc.description.department | Katedra softwarového inženýrství | cs_CZ |
dc.description.department | Department of Software Engineering | en_US |
dc.description.faculty | Faculty of Mathematics and Physics | en_US |
dc.description.faculty | Matematicko-fyzikální fakulta | cs_CZ |
dc.identifier.repId | 217818 | |
dc.title.translated | Type inference and polymorphism for C | en_US |
dc.contributor.referee | Šefl, Vít | |
thesis.degree.name | Bc. | |
thesis.degree.level | bakalářské | cs_CZ |
thesis.degree.discipline | General Computer Science | en_US |
thesis.degree.discipline | Obecná informatika | cs_CZ |
thesis.degree.program | Computer Science | en_US |
thesis.degree.program | Informatika | cs_CZ |
uk.thesis.type | bakalářská práce | cs_CZ |
uk.taxonomy.organization-cs | Matematicko-fyzikální fakulta::Katedra softwarového inženýrství | cs_CZ |
uk.taxonomy.organization-en | Faculty of Mathematics and Physics::Department of Software Engineering | 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 | Obecná informatika | cs_CZ |
uk.degree-discipline.en | General Computer Science | en_US |
uk.degree-program.cs | Informatika | cs_CZ |
uk.degree-program.en | Computer Science | en_US |
thesis.grade.cs | Dobře | cs_CZ |
thesis.grade.en | Good | en_US |
uk.abstract.cs | Jazyk C, i přes své stáří, stále patří mezi přední jazyky programování počítačových systémů. Jeho ceněnou přednosti je, že uživateli poskytuje takřka úplnou kontrolu nad správou paměti a nad prováděnými výpočty. C však snáší kritiku za to, že v něm chybí prvky umožňující generické programování, což se v C kompenzuje používáním preprocesorových maker, což zvyšuje náchylnost na uživatelské chyby. Tento problém již řeší jazyk C++ už od počátků svého vývoje, ale spousta vývojářů počítačových systémů jej odmítá pro jeho komplexitu a netranspar- entnost kódu. Předkládáme tedy návrh na jednodušší řešení užitím typového systému Hindley-Milner. Toto řešení pak jen za drobých úprav syntaxe jazyka C poskytne mnohem vyšší expresivitu jazyka. 1 | cs_CZ |
uk.abstract.en | The C language, despite its age, is one of the main languages in systems development. It is valued for giving the user almost complete control over the memory management and the computations the program written in it performs. However, a large portion of criticism of C arises from the lack of generic programming features. C compensates that by utilizing preprocessor macros, which are prone to user errors. This problem has been addressed in the early stages of the development of the C++ language, but many systems developers refuse C++ because of its complexity and non-transparency of the code. We propose a simpler solution by applying the Hindley-Milner type sys- tem extended by Haskell type classes and type constructors. We will show that this approach is viable even with minimal changes to the syntax of C, but giving it much higher expressiveness. 1 | en_US |
uk.file-availability | V | |
uk.grantor | Univerzita Karlova, Matematicko-fyzikální fakulta, Katedra softwarového inženýrství | cs_CZ |
thesis.grade.code | 3 | |
uk.publication-place | Praha | cs_CZ |