Linssit ohjelmoinnissa
Ohjelmoinnissa on usein tilanteita, joissa kaksi toisiinsa yhteyksissä olevaa rakennetta on sidoksissa toisiinsa niin, että muutokset yhteen rakenteeseen heijastuvat asianmukaisesti myös toiseen rakenteeseen. Tässä tutkielmassa käsitellään datamallien välistä transformointia kaksisuuntaisten transformaatioiden näkökulmasta. Tekstissä käydään läpi erityisen tarkasti eräs kaksisuuntainen transformaatio, nimeltään linssit, ja tutkitaan linssien rakenteita ja ominaisuuksia. Linssien yhteydessä käydään läpi alunperin relaatiotietokannoista tullut termi näkymänpäivitysongelma, joka on yleistettävissä datamallien välisiin transformaatioihin. Linssit ovat vielä tällä hetkellä melko harvinaisia ohjelmoinnissa, mutta nykyään on olemassa ohjelmointikieliä, jotka perustuvat kokonaan linsseihin. Lisäksi Haskelissa on tarjolla laaja linssikirjasto. Computing is full of situations where two structures are connected in such a way that modification to one structure should be propagated to the other structure. This research is about bidirectional transformations between data structures. This text focuses on a special case of bidirectional transformations called lenses. The structure and the properties of lenses is studied in a general but still in a detailed way. The text also covers a term called view update problem which has been extensively studied in context of relational databases. The data transformations between two different structures is a generalization of the view update problem. Lenses are still rare in the context of programming but there are, however, programming languages which are based on lenses. Haskell has also a large implementation of lens library.
Metadata
Show full item recordCollections
- Kandidaatintutkielmat [5334]
Related items
Showing items with similar title or keywords.
-
Toistorakenteet C#:ssa ja Haskellissa
Häyrynen, Mikko (2017)Tutkielmassa vertaillaan funktionaalista ja imperatiivista ohjelmointiparadigmaa toistorakenteiden osalta. Vertailussa tarkastellaan Jyväskylän yliopiston ohjelmointikursseilla käsiteltäviä C#– ja Haskell–ohjelmointikieliä, ... -
Haskellin käyttö web-palvelinohjelmoinnissa
Lappi, Vilma (2018)Funktio-ohjelmointia ei tavallisesti juurikaan käytetä web-kehityksessä. Tässä tutkielmassa selvitetään, olisiko Haskell-nimisestä funktio-ohjelmointikielestä kuitenkin hyötyä web-palvelinohjelmoinnissa. Tutkimuskysymyksenä ... -
Regularisaatio vahvojen gravitaatiolinssien inversiossa
Eskelinen, Matti Aleksanteri (2015)Massiivisten galaksien gravitaatio aiheuttaa vääristymän teleskoopilla havaittavaan kuvaan muuttamalla galaksin takaa saapuvan valon reittiä. Niin kutsu- tuissa vahvoissa gravitaatiolinsseissä voi linssinä toimiva galaksi ... -
Opiskelijoiden suurimmat haasteet Haskell-ohjelmointikielen tyyppijärjestelmän kanssa
Keveri, Matias (2018)Haskell-ohjelmointikielellä opetettavalla funktio-ohjelmoinnin johdatuskurssilla oppilaat kohtaavat useita haasteita. Näistä yleisimmät liittyvät usein kielen syntaksiin tai tyyppijärjestelmään. Tämä tutkielma keskittyy ... -
Elm-ohjelmointikieli web-käyttöliittymien ohjelmoinnissa
Hopia, Tuomo (2019)Elm-ohjelmointikieli on varsin uusi kielitulokas web-käyttöliittymien ohjelmointiin. Kieli pyrkii ratkaisemaan web-käyttöliittymien kehityksen merkittävimmät ongelmat hyvin omaperäisellä funktio-ohjelmointiin perustuvalla ...