Advanced Type Systems
Pokročilé typové systémy
rigorous thesis (RECOGNIZED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/204864Identifiers
Study Information System: 282692
Collections
- Kvalifikační práce [11985]
Author
Advisor
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Computer Science - Theoretical Computer Science
Department
Computer Science Institute of Charles University
Date of defense
8. 10. 2025
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Recognized
Keywords (Czech)
funkcionální programování, typové systémyKeywords (English)
functional programming, type systemsAčkoliv se výsledky výzkumu typových systémů postupně přidávají do běžných pro- gramovacích jazyků, tento proces je obvykle konzervativní a pomalý. Nejnovější výsledky v této oblasti by mohly značně vylepšit expresivitu běžných typových systémů. Tato práce demonstruje využití třech konkrétních výsledků v praktickém programování: použití po- lymorfního lambda kalkulu na eliminaci chyb v šablonových metaprogramech, efektivitu zipperů definovaných pomocí derivace algebraických datových typů a praktické použití aditivních typů ve substrukturálních typových teorií. Pro ukázku proveditelnosti navrže- ných řešení je součastí práce taktéž definice a implementace dvou nových programovacích jazyků a podrobná analýza výkonu zipperů a jim podobných datových struktur.
While the results of type system research are being incorporated into many main- stream programming languages, this process has generally been conservative and slow. Recent research results have the potential to greatly increase the expressiveness of their type systems. This thesis demonstrates the application of three such results in practical programming: the use of a polymorphic lambda calculus to eliminate errors in template metaprograms, the efficiency of zippers obtained through algebraic data type differen- tiation, and practical uses of additive types in substructural type theories. We further demonstrate the viability of the proposed solutions by defining and implementing two new programming languages, as well as providing a detailed performance analysis of zippers and their imperative counterparts.
