dc.contributor.advisor | Bulej, Lubomír | |
dc.creator | Rozsypal, Lukáš | |
dc.date.accessioned | 2023-11-06T12:30:44Z | |
dc.date.available | 2023-11-06T12:30:44Z | |
dc.date.issued | 2023 | |
dc.identifier.uri | http://hdl.handle.net/20.500.11956/184126 | |
dc.description.abstract | Kampa is an experimental general-purpose imperative programming language influ- enced by functional programming. While Kampa offers several potentially useful features, its usability is limited by some properties of its current implementation as well as of the language itself. We add support for coroutines and parameter inference, making the language more expressive. We also make changes to the syntax that improve code read- ability, in particular reducing the tendency to "line noise". We refine the implementation to remove several arbitrary restrictions regarding generic and dependent types, enabling generic type definitions (among others). Lastly, we demonstrate the practicality of the result by writing a library providing collections, optional, asynchronous programming, generators, and string utilities. 1 | en_US |
dc.description.abstract | Kampa je experimentální všeobecný imperativní programovací jazyk s prvky funkcionálního programování. Ačkoliv disponuje řadou potenciálně užitečných vlastností, jeho použitelnost je v tuto chvíli omezená nedokonalostmi implementace, ale i jazyka samotného. V této práci jsou odstraňovány tyto nedostatky. Je zlepšena expresivita jazyka přidáním podpory pro koprogramy (coroutines) a inferenci parametrů. Byly pozměněny některé detaily syntaxe s cílem vylepšit čitelnost. Zdokonalila se implementace odstraněním zdánlivě náhodných omezení, zejména co se týká generických a závislých typů, což (mimo jiné) umožní programátorům i knihovně definovat generické typy. Nakonec je názorně předvedena praktičnost jazyka na příkladu standardní knihovny zahrnující obecná dynamická pole, optional a nástroje pro asynchronní programování, psaní generátorů a práci s řetězci. | cs_CZ |
dc.language | English | cs_CZ |
dc.language.iso | en_US | |
dc.publisher | Univerzita Karlova, Matematicko-fyzikální fakulta | cs_CZ |
dc.subject | návrh programovacích jazyků|programovací jazyk Kampa|silně typované jazyky | cs_CZ |
dc.subject | programming language design|Kampa programming language|strongly typed languages | en_US |
dc.title | Kampa: from a prototype to practical usability | en_US |
dc.type | diplomová práce | cs_CZ |
dcterms.created | 2023 | |
dcterms.dateAccepted | 2023-09-06 | |
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 | Matematicko-fyzikální fakulta | cs_CZ |
dc.description.faculty | Faculty of Mathematics and Physics | en_US |
dc.identifier.repId | 244099 | |
dc.title.translated | Kampa: od prototypu k praktické použitelnosti | cs_CZ |
dc.contributor.referee | Petříček, Tomáš | |
thesis.degree.name | Mgr. | |
thesis.degree.level | navazující magisterské | cs_CZ |
thesis.degree.discipline | Informatika - Softwarové systémy | cs_CZ |
thesis.degree.discipline | Computer Science - Software Systems | en_US |
thesis.degree.program | Informatika - Softwarové systémy | cs_CZ |
thesis.degree.program | Computer Science - Software Systems | en_US |
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 | Kampa je experimentální všeobecný imperativní programovací jazyk s prvky funkcionálního programování. Ačkoliv disponuje řadou potenciálně užitečných vlastností, jeho použitelnost je v tuto chvíli omezená nedokonalostmi implementace, ale i jazyka samotného. V této práci jsou odstraňovány tyto nedostatky. Je zlepšena expresivita jazyka přidáním podpory pro koprogramy (coroutines) a inferenci parametrů. Byly pozměněny některé detaily syntaxe s cílem vylepšit čitelnost. Zdokonalila se implementace odstraněním zdánlivě náhodných omezení, zejména co se týká generických a závislých typů, což (mimo jiné) umožní programátorům i knihovně definovat generické typy. Nakonec je názorně předvedena praktičnost jazyka na příkladu standardní knihovny zahrnující obecná dynamická pole, optional a nástroje pro asynchronní programování, psaní generátorů a práci s řetězci. | cs_CZ |
uk.abstract.en | Kampa is an experimental general-purpose imperative programming language influ- enced by functional programming. While Kampa offers several potentially useful features, its usability is limited by some properties of its current implementation as well as of the language itself. We add support for coroutines and parameter inference, making the language more expressive. We also make changes to the syntax that improve code read- ability, in particular reducing the tendency to "line noise". We refine the implementation to remove several arbitrary restrictions regarding generic and dependent types, enabling generic type definitions (among others). Lastly, we demonstrate the practicality of the result by writing a library providing collections, optional, asynchronous programming, generators, and string utilities. 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 | |