Funktsionaalse programmeerimiskeele liigisüsteem

Nimi
Liisi Kerik
Kokkuvõte
Staatilised tüübisüsteemid võimaldavad leida programmidest teatud vigu juba enne koodi käivitamist ja aitavad seega kaasa töökindlama koodi kirjutamisele. Paljud funktsionaalsed keeled, näiteks Haskell ja Idris, on staatiliselt tüübitud.
Mida väljendusrikkam on keele tüübisüsteem, seda rohkem vigu on võimalik juba tüübikontrolli ajal leida.
Osad keeled, näiteks Idris, kasutavad sõltuvaid tüüpe, mis muudavad tüübisüsteemi võimsaks, aga ka keeruliseks. Hiljuti Haskellis sisse toodud edutamine tõstab tüübisüsteemi väljendusrikkust ilma sõltuvate tüüpideta, võimaldades tüübitaseme andmeid, näiteks tüübitaseme naturaalarvusid ja liste. Koos üldistatud algebraliste andmetüüpidega laseb edutamine programmeerijal konstrueerida kasulikke andmestruktuure, näiteks staatilise pikkusega vektoreid ning üldistatud ennikuid.
Käesoleva töö eesmärgiks oli arendada staatiliselt tüübitud funktsionaalne programmeerimiskeel, mille tüübisüsteemi on rikastatud edutamise abil. Tulemuseks olev keel Awful näitab, et edutamise teel saadud liikidele ja tüüpidele on palju kasulikke rakendusi ka keeles, milles puuduvad üldistatud algebralised andmetüübid.
Awful kasutab üldistatud algebraliste andmetüüpide abil piiravamat aga oluliselt lihtsamat uut andmetüüpide konstrueerimise viisi. Hargnevad andmetüübid võimaldavad konstrueerida paljusid kasulikke struktuure, näiteks staatilise pikkusega vektoreid, mille jaoks Haskellis või Idrises kasutataks üldistatud algebralisi andmetüüpe.
Lõputöö keel
eesti
Lõputöö tüüp
Magister - Informaatika
Juhendaja(d)
Härmel Nestra
Kaitsmise aasta
2018
 
PDF Lisad