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 transfo...

Full description

Bibliographic Details
Main Author: Kauppinen, Janne
Other Authors: Informaatioteknologian tiedekunta, Faculty of Information Technology, Informaatioteknologia, Information Technology, University of Jyväskylä, Jyväskylän yliopisto
Format: Bachelor's thesis
Language:fin
Published: 2016
Subjects:
Online Access: https://jyx.jyu.fi/handle/123456789/50283
_version_ 1826225808250765313
author Kauppinen, Janne
author2 Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology University of Jyväskylä Jyväskylän yliopisto
author_facet Kauppinen, Janne Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology University of Jyväskylä Jyväskylän yliopisto Kauppinen, Janne Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology University of Jyväskylä Jyväskylän yliopisto
author_sort Kauppinen, Janne
datasource_str_mv jyx
description 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.
first_indexed 2016-06-13T20:00:46Z
format Kandityö
free_online_boolean 1
fullrecord [{"key": "dc.contributor.advisor", "value": "M\u00f6nk\u00f6l\u00e4 Sanna", "language": null, "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.author", "value": "Kauppinen, Janne", "language": null, "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2016-06-13T12:20:57Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2016-06-13T12:20:57Z", "language": null, "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "2016", "language": null, "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/50283", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Ohjelmoinnissa on usein tilanteita, joissa kaksi toisiinsa yhteyksiss\u00e4 olevaa rakennetta on sidoksissa toisiinsa niin, ett\u00e4 muutokset yhteen rakenteeseen heijastuvat asianmukaisesti my\u00f6s toiseen rakenteeseen. T\u00e4ss\u00e4 tutkielmassa k\u00e4sitell\u00e4\u00e4n datamallien v\u00e4list\u00e4 transformointia kaksisuuntaisten transformaatioiden n\u00e4k\u00f6kulmasta. Tekstiss\u00e4 k\u00e4yd\u00e4\u00e4n l\u00e4pi erityisen tarkasti er\u00e4s kaksisuuntainen transformaatio, nimelt\u00e4\u00e4n linssit, ja tutkitaan linssien rakenteita ja ominaisuuksia. Linssien yhteydess\u00e4 k\u00e4yd\u00e4\u00e4n l\u00e4pi alunperin relaatiotietokannoista tullut termi n\u00e4kym\u00e4np\u00e4ivitysongelma, joka on yleistett\u00e4viss\u00e4 datamallien v\u00e4lisiin transformaatioihin. Linssit ovat viel\u00e4 t\u00e4ll\u00e4 hetkell\u00e4 melko harvinaisia ohjelmoinnissa, mutta nyky\u00e4\u00e4n on olemassa ohjelmointikieli\u00e4, jotka perustuvat kokonaan linsseihin. Lis\u00e4ksi Haskelissa on tarjolla laaja linssikirjasto.", "language": "fi", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.abstract", "value": "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.", "language": "en", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted using Plone Publishing form by Janne Kauppinen (jaankaup) on 2016-06-13 12:20:57.240138. Form: Kandidaatintutkielma -lomake (https://kirjasto.jyu.fi/julkaisut/julkaisulomakkeet/kandin-tutkielma-lomake). JyX data: [jyx_publishing-allowed (fi) =True]", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by jyx lomake-julkaisija (jyx-julkaisija.group@korppi.jyu.fi) on 2016-06-13T12:20:57Z\nNo. of bitstreams: 2\nURN:NBN:fi:jyu-201606133050.pdf: 533855 bytes, checksum: c0f28248fe3a30fa3b6adb0cc3de06d5 (MD5)\nlicense.html: 4769 bytes, checksum: d2340c2512fefae3a1c7597cc3686175 (MD5)", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2016-06-13T12:20:57Z (GMT). No. of bitstreams: 2\nURN:NBN:fi:jyu-201606133050.pdf: 533855 bytes, checksum: c0f28248fe3a30fa3b6adb0cc3de06d5 (MD5)\nlicense.html: 4769 bytes, checksum: d2340c2512fefae3a1c7597cc3686175 (MD5)\n Previous issue date: 2016", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "20", "language": "", "element": "format", "qualifier": "extent", "schema": "dc"}, {"key": "dc.language.iso", "value": "fin", "language": null, "element": "language", "qualifier": "iso", "schema": "dc"}, {"key": "dc.rights", "value": "In Copyright", "language": "en", "element": "rights", "qualifier": null, "schema": "dc"}, {"key": "dc.subject.other", "value": "linssit", "language": null, "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "kaksisuuntainen transformaatio", "language": null, "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "n\u00e4kym\u00e4np\u00e4ivitysongelma", "language": null, "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "Haskell", "language": null, "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Linssit ohjelmoinnissa", "language": "", "element": "title", "qualifier": null, "schema": "dc"}, {"key": "dc.type", "value": "bachelor thesis", "language": null, "element": "type", "qualifier": null, "schema": "dc"}, {"key": "dc.identifier.urn", "value": "URN:NBN:fi:jyu-201606133050", "language": null, "element": "identifier", "qualifier": "urn", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Kandidaatintutkielma", "language": "fi", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Bachelor's thesis", "language": "en", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Informaatioteknologian tiedekunta", "language": "fi", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Faculty of Information Technology", "language": "en", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Informaatioteknologia", "language": "fi", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Information Technology", "language": "en", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "University of Jyv\u00e4skyl\u00e4", "language": "en", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "Jyv\u00e4skyl\u00e4n yliopisto", "language": "fi", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Tietotekniikka", "language": "fi", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Mathematical Information Technology", "language": "en", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.date.updated", "value": "2016-06-13T12:20:58Z", "language": null, "element": "date", "qualifier": "updated", "schema": "dc"}, {"key": "dc.type.coar", "value": "http://purl.org/coar/resource_type/c_7a1f", "language": null, "element": "type", "qualifier": "coar", "schema": "dc"}, {"key": "dc.rights.accesslevel", "value": "openAccess", "language": "fi", "element": "rights", "qualifier": "accesslevel", "schema": "dc"}, {"key": "dc.type.publication", "value": "bachelorThesis", "language": null, "element": "type", "qualifier": "publication", "schema": "dc"}, {"key": "dc.rights.url", "value": "https://rightsstatements.org/page/InC/1.0/", "language": null, "element": "rights", "qualifier": "url", "schema": "dc"}]
id jyx.123456789_50283
language fin
last_indexed 2025-02-18T10:54:09Z
main_date 2016-01-01T00:00:00Z
main_date_str 2016
online_boolean 1
online_urls_str_mv {"url":"https:\/\/jyx.jyu.fi\/bitstreams\/7c61d0cd-30ac-4968-8d76-a593e1ea593f\/download","text":"URN:NBN:fi:jyu-201606133050.pdf","source":"jyx","mediaType":"application\/pdf"}
publishDate 2016
record_format qdc
source_str_mv jyx
spellingShingle Kauppinen, Janne Linssit ohjelmoinnissa linssit kaksisuuntainen transformaatio näkymänpäivitysongelma Haskell Tietotekniikka Mathematical Information Technology
title Linssit ohjelmoinnissa
title_full Linssit ohjelmoinnissa
title_fullStr Linssit ohjelmoinnissa Linssit ohjelmoinnissa
title_full_unstemmed Linssit ohjelmoinnissa Linssit ohjelmoinnissa
title_short Linssit ohjelmoinnissa
title_sort linssit ohjelmoinnissa
title_txtP Linssit ohjelmoinnissa
topic linssit kaksisuuntainen transformaatio näkymänpäivitysongelma Haskell Tietotekniikka Mathematical Information Technology
topic_facet Haskell Mathematical Information Technology Tietotekniikka kaksisuuntainen transformaatio linssit näkymänpäivitysongelma
url https://jyx.jyu.fi/handle/123456789/50283 http://www.urn.fi/URN:NBN:fi:jyu-201606133050
work_keys_str_mv AT kauppinenjanne linssitohjelmoinnissa