Laiska evaluointi
Koskinen, Petteri (2018)
Koskinen, Petteri
2018
Tietotekniikka
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2018-09-05
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201808142075
https://urn.fi/URN:NBN:fi:tty-201808142075
Tiivistelmä
Tämän työn päätavoitteena on selvittää, miten laiska evaluointi toimii eri sovelluskohteissa sekä mitä hyötyjä ja haittoja sen käytöstä aiheutuu. Tässä työssä keskitytään kahteen sovelluskohteeseen: laiskuus ohjelmointikielessä sekä laiskuus tietokannoissa.
Aineistona tässä tutkimuksessa on aikaisemmat tutkimukset sovelluskohteisiin sekä yleinen kirjallisuus aiheeseen liittyen. Tärkeimpinä lähteinä tässä työssä ovat Faleiro et al. Lazy evaluation of transactions in database systems -tutkimus laiskoista tietokannoista sekä Heinrich Apfelmuksen The Incomplete Guide to Lazy Evaluation (in Haskell) -artikkeli laiskuuden toiminnasta Haskellissa.
Tuloksena tästä työstä saadaan, että laiska evaluointi sopii joihinkin sovelluskohteisiin hyvin ja toisiin huonosti. Jopa saman sovelluskohteen sisällä löytyy tilanteita, joissa laiska evaluointi ja innokas evaluointi ovat toinen toistaan parempia. Ehkäpä ainoa kohde jossa laiska evaluointi on aina parempi, on loputtomat sarjat. Näiden suoritus ei lopu koskaan innokkaassa evaluoinnissa, joten laiska evaluointi on ainoa vaihtoehto niiden käsittelyyn.
Aineistona tässä tutkimuksessa on aikaisemmat tutkimukset sovelluskohteisiin sekä yleinen kirjallisuus aiheeseen liittyen. Tärkeimpinä lähteinä tässä työssä ovat Faleiro et al. Lazy evaluation of transactions in database systems -tutkimus laiskoista tietokannoista sekä Heinrich Apfelmuksen The Incomplete Guide to Lazy Evaluation (in Haskell) -artikkeli laiskuuden toiminnasta Haskellissa.
Tuloksena tästä työstä saadaan, että laiska evaluointi sopii joihinkin sovelluskohteisiin hyvin ja toisiin huonosti. Jopa saman sovelluskohteen sisällä löytyy tilanteita, joissa laiska evaluointi ja innokas evaluointi ovat toinen toistaan parempia. Ehkäpä ainoa kohde jossa laiska evaluointi on aina parempi, on loputtomat sarjat. Näiden suoritus ei lopu koskaan innokkaassa evaluoinnissa, joten laiska evaluointi on ainoa vaihtoehto niiden käsittelyyn.
Kokoelmat
- Kandidaatintutkielmat [7047]