Skip to main content
Login | Suomeksi | På svenska | In English

Browsing by Author "Pärtel, Martin"

Sort by: Order: Results:

  • Pärtel, Martin (2014)
    Ohjelmoinnissa puhdas funktio ei vaikuta ohjelman tilaan muuten kuin palauttamalla paluuarvon, joka riippuu ainoastaan annetuista parametreista. Jotkut ohjelmointikielet sallivat lähtökohtaisesti vain puhtaiden funktioiden kirjoittamisen. Nämä kielet ovat yleensä tyyliltään 'funktionaalisia', eli ne suosivat funktion toteutuksen esittämistä yhtenä lausekkeena tavanomaisemman 'imperatiivisen' lausejonon sijaan. Tutkielmassa esitellään uusi ohjelmointikieli Uniic, joka on tyyliltään imperatiivinen, mutta sallii vain puhtaiden funktioiden kirjoittamisen. Uniic käännetään puhtaasti funktionaaliselle kohdekielelle, mikä estää suunnittelemasta kieleen epäpuhtaita ominaisuuksia. Kääntäjästä on toteutettu prototyyppi. Funktionaalisessa kohdekielessä on Clean-kieleen perustuva uniikkityypitysjärjestelmä. Uniikkityypitys mahdollistaa epäpuhtaiden operaatioiden turvallisen mallintamisen rajoittamalla uniikiksi merkityt arvot yhteen käyttökertaan. Uniicin lähdekielessä on rakenne nimeltä lainaus, jolla ohjelmoija voi näennäisesti käyttää uniikkia arvoa monta kertaa. Lainaus on toteutettu siten, ettei kohdekielen uniikkityypitysjärjestelmää tarvitse muuttaa. Uniicin imperatiiviset piirteet sekä lainaus mahdollistavat koodin kirjoittamisen imperatiivisella tyylillä monessa tilanteessa, jossa olemassa olevat puhtaat kielet pakottavat funktionaaliseen tyyliin. Yritykset laajentaa Uniicia kielen puhtautta menettämättä auttavat hahmottamaan funktionaalisen ja imperatiivisen ohjelmoinnin eroavaisuuksia ja toisaalta myös potentiaalisia samankaltaisuuksia.