Advanced Type Systems
Pokročilé typové systémy
rigorózní práce (UZNÁNO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/204864Identifikátory
SIS: 282692
Kolekce
- Kvalifikační práce [11985]
Autor
Vedoucí práce
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Informatika - Teoretická informatika
Katedra / ústav / klinika
Informatický ústav Univerzity Karlovy
Datum obhajoby
8. 10. 2025
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Uznáno
Klíčová slova (česky)
funkcionální programování, typové systémyKlíčová slova (anglicky)
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.
