Summary: | 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.
|