Maintainable type classes for Haskell
Udržování typové třídy v Haskellu
diplomová práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/72117Identifikátory
SIS: 151863
Kolekce
- Kvalifikační práce [10923]
Autor
Vedoucí práce
Oponent práce
Křen, Tomáš
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Teoretická informatika
Katedra / ústav / klinika
Katedra teoretické informatiky a matematické logiky
Datum obhajoby
9. 9. 2014
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Klíčová slova (česky)
Haskell, typové třídy, udržovatelnost, výchozí instance nadtřídKlíčová slova (anglicky)
Haskell, type classes, maintainability, default superclass instancesV této práci se zaměřujeme na dlouhodobý problém v systému typových tříd jazyka Haskell. Konkrétně se zabýváme možnostmi zpětně kompatibilních úprav v existujících hierarchiích tříd. V první části práce podáváme stručný přehled jazyka. Následující část shrnuje stávající navrhovaná řešení problému a rozebírá jejich vlastnosti. Na základě tohoto rozboru předkládáme náš vlastní návrh na jazykové rozšíření. V předposlední části uvádíme několik možných užití jazykového rozšíření a srovnáváme jej s ostatními řešeními. Součástí práce je také proof-of-concept implementace rozšíření pro kompilátor GHC, která je stručně popsána v poslední části. Powered by TCPDF (www.tcpdf.org)
In this thesis we address a long-term maintainability problem in Haskell type class system. In particular we study a possibility of backward-compatible changes in existing class hierarchies. In the first part of the thesis we give a brief overview of the language. The following part summarizes current proposed solutions to the problem and analyzes their properties. Based on this analysis we derive our own language extension proposal. In the penultimate chapter we present several possible applications of the language extension and compare the extension to other solutions. As a part of the thesis we also give a proof-of-concept implementation of the extension for the GHC compiler, which is briefly described in the last part of this thesis. Powered by TCPDF (www.tcpdf.org)