Original title:
Kampa: od prototypu k praktické použitelnosti
Translated title:
Kampa: from a prototype to practical usability
Authors:
Rozsypal, Lukáš ; Bulej, Lubomír (advisor) ; Petříček, Tomáš (referee) Document type: Master’s theses
Year:
2023
Language:
eng Abstract:
[eng][cze] 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. 1Kampa 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.
Keywords:
programming language design|Kampa programming language|strongly typed languages; návrh programovacích jazyků|programovací jazyk Kampa|silně typované jazyky
Institution: Charles University Faculties (theses)
(web)
Document availability information: Available in the Charles University Digital Repository. Original record: http://hdl.handle.net/20.500.11956/184126