Julia-ohjelmointikielen ominaisuudet ja käyttökohteet
Esko, Mikko (2021)
Esko, Mikko
2021
Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
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ä
2021-09-09
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202108276830
https://urn.fi/URN:NBN:fi:tuni-202108276830
Tiivistelmä
Tämän tutkielman tarkoituksena on antaa lukijalle yleiskuva Julia-ohjelmointikielen keskeisimmistä ominaisuuksista ja selvittää, miten ne auttavat Juliaa toteuttamaan lupauksen käännettyjä kieliä vastaavasta suorituskyvystä. Tutkielmassa tehtiin katsaus Juliaa koskevaan ja Julialla tehtyyn tutkimukseen. Aineiston avulla selvitettiin, mihin kieltä käytetään ja miten kielen erityisominaisuuksia on hyödynnetty erilaisissa käyttökohteissa.
Julia on vuonna 2012 julkaistu korkean tason dynaaminen ohjelmointikieli, joka pyrkii tarjoamaan matalan tason käännettyjen kielten tasoista suorituskykyä. Optimoitu Julia-koodi voi yltää jopa C-kielen tasoiseen suorituskykyyn. Julian suorituskyvyn taustalla ovat ajonaikainen kääntäminen, tyyppipäättely sekä aggressiivinen optimointi. Kielen käyttäjät ovat raportoineet Julialla kirjoitetun koodin olevan sekä suorituskykyisempää että lyhyempää kuin muilla korkean tason kielillä kirjoitettu koodi. Suorituskyvyn lisäksi Julian vahvuuksia ovat kielen laajennettavuus, intuitiivinen syntaksi sekä laaja standardikirjasto.
Julian erityispiirre on metodivalinnassa käytettävä multiple dispatch, jota voidaan pitää kielen pääasiallisena paradigmana. Multiple dispatch tarkoittaa, että metodivalinta tehdään kaikkien parametrien tyyppien perusteella. Julian monipuolinen tyyppijärjestelmä yhdessä multiple dispatchin kanssa mahdollistaa vahvat abstraktiot, jotka tekevät kielestä joustavan ja laajennettavan. Kielen joustavuutta lisäävät myös laajat metaohjelmointiominaisuudet.
Tutkielman tuloksena todetaan, että Julia on erittäin ilmaisuvoimainen ja suorituskykyinen ohjelmointikieli, joka soveltuu monenlaiseen käyttöön. Kieltä on käytetty paljon erityisesti laskennallisesti vaativissa käyttökohteissa, kuten tieteellisessä laskennassa, matemaattisessa optimoinnissa ja koneoppimisessa. Julia-koodia voidaan suorittaa myös grafiikka- ja tensorisuorittimilla sekä hajautetuilla alustoilla, minkä vuoksi se soveltuu myös suurteholaskentaan. Juliaa käytetään monissa yliopistoissa opetuksessa sekä tutkimuksessa. Julian heikkoutena on vielä toistaiseksi pienehkö valikoima paketteja suositumpiin kieliin verrattuna.
Julia on vuonna 2012 julkaistu korkean tason dynaaminen ohjelmointikieli, joka pyrkii tarjoamaan matalan tason käännettyjen kielten tasoista suorituskykyä. Optimoitu Julia-koodi voi yltää jopa C-kielen tasoiseen suorituskykyyn. Julian suorituskyvyn taustalla ovat ajonaikainen kääntäminen, tyyppipäättely sekä aggressiivinen optimointi. Kielen käyttäjät ovat raportoineet Julialla kirjoitetun koodin olevan sekä suorituskykyisempää että lyhyempää kuin muilla korkean tason kielillä kirjoitettu koodi. Suorituskyvyn lisäksi Julian vahvuuksia ovat kielen laajennettavuus, intuitiivinen syntaksi sekä laaja standardikirjasto.
Julian erityispiirre on metodivalinnassa käytettävä multiple dispatch, jota voidaan pitää kielen pääasiallisena paradigmana. Multiple dispatch tarkoittaa, että metodivalinta tehdään kaikkien parametrien tyyppien perusteella. Julian monipuolinen tyyppijärjestelmä yhdessä multiple dispatchin kanssa mahdollistaa vahvat abstraktiot, jotka tekevät kielestä joustavan ja laajennettavan. Kielen joustavuutta lisäävät myös laajat metaohjelmointiominaisuudet.
Tutkielman tuloksena todetaan, että Julia on erittäin ilmaisuvoimainen ja suorituskykyinen ohjelmointikieli, joka soveltuu monenlaiseen käyttöön. Kieltä on käytetty paljon erityisesti laskennallisesti vaativissa käyttökohteissa, kuten tieteellisessä laskennassa, matemaattisessa optimoinnissa ja koneoppimisessa. Julia-koodia voidaan suorittaa myös grafiikka- ja tensorisuorittimilla sekä hajautetuilla alustoilla, minkä vuoksi se soveltuu myös suurteholaskentaan. Juliaa käytetään monissa yliopistoissa opetuksessa sekä tutkimuksessa. Julian heikkoutena on vielä toistaiseksi pienehkö valikoima paketteja suositumpiin kieliin verrattuna.
Kokoelmat
- Kandidaatintutkielmat [8421]