Advanced Type Systems
Pokročilé typové systémy
dissertation thesis (DEFENDED)

View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/197824Identifiers
Study Information System: 177856
Collections
- Kvalifikační práce [11327]
Author
Advisor
Consultant
Hric, Jan
Referee
Mycroft, Alan
Petříček, Tomáš
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Theoretical Computer Science and Artificial Intelligence
Department
Department of Software and Computer Science Education
Date of defense
26. 3. 2025
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Pass
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.