arvutiteaduse instituudi lõputööderegister


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