Varjostinkielen toteuttaminen
Vuorinen, Atte (2018)
Vuorinen, Atte
Kajaanin ammattikorkeakoulu
2018
Creative Commons Attribution 1.0 Suomi
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2018112818891
https://urn.fi/URN:NBN:fi:amk-2018112818891
Tiivistelmä
Työssä käsitellään yleisesti ohjelmointikielten rakennetta ja toteutuksessa tarvittavia tekniikoita. Ohjelmointikielet rakentuvat useista pienemmistä kokonaisuuksista, joita yleisesti ovat esiprosessointi, leksikaalinen analyysi, jäsentäjä ja koodin generointi.
Pääosin työssä keskitytään leksikaaliseen analyysiin ja jäsenten rakenteeseen ja toimintaan. Näiden tekniikoiden avulla voidaan esimerkiksi tulkita ohjelmointikieltä. Leksikaalisessa analyysissä sanoista muodostetaan saneita ja jäsentäjässä sanoista muodostetaan syntaksipuita käyttämällä apuna leksikaalisen analyysin saneita. Leksikaalinen analyysillä ja jäsentäjällä on kuitenkin samankaltainen rakenne ja toimintaperiaate.
Työn tavoitteena oli toteuttaa monipuolinen varjostinkieli. Kielen toteutus alkoi rakenteen ja avainsanojen suunnittelusta, ja jatkui leksikaalisen analyysin ja kääntäjän toteutukseen. Leksikaalisen analyysin avulla varjostinkielen rakennetta pystyi helposti laajentamaan ja jäsentämään. Lopuksi kääntäjä pystyi täydentämään varjostintiedoston tiedot käyttämällä leksikaalisen analyysin saneita.
Varjostinkielen toteutuksessa käytettiin C++-ohjelmointikieltä ja kolmannen osapuolen kirjastoja. Varjostintiedostojen täydentämisessä käytetty Mustache kaavainkirjasto mahdollisti JSON formaatin perusteella kaavaimien täydentämisen.
Työn lopputuloksena tuli toimiva monipuolinen varjostinkieli, jonka monipuolisuus saavutettiin käyttämällä kaavaintiedostoja. Näiden pohjalta lopulliset varjostintiedostot luodaan.
Pääosin työssä keskitytään leksikaaliseen analyysiin ja jäsenten rakenteeseen ja toimintaan. Näiden tekniikoiden avulla voidaan esimerkiksi tulkita ohjelmointikieltä. Leksikaalisessa analyysissä sanoista muodostetaan saneita ja jäsentäjässä sanoista muodostetaan syntaksipuita käyttämällä apuna leksikaalisen analyysin saneita. Leksikaalinen analyysillä ja jäsentäjällä on kuitenkin samankaltainen rakenne ja toimintaperiaate.
Työn tavoitteena oli toteuttaa monipuolinen varjostinkieli. Kielen toteutus alkoi rakenteen ja avainsanojen suunnittelusta, ja jatkui leksikaalisen analyysin ja kääntäjän toteutukseen. Leksikaalisen analyysin avulla varjostinkielen rakennetta pystyi helposti laajentamaan ja jäsentämään. Lopuksi kääntäjä pystyi täydentämään varjostintiedoston tiedot käyttämällä leksikaalisen analyysin saneita.
Varjostinkielen toteutuksessa käytettiin C++-ohjelmointikieltä ja kolmannen osapuolen kirjastoja. Varjostintiedostojen täydentämisessä käytetty Mustache kaavainkirjasto mahdollisti JSON formaatin perusteella kaavaimien täydentämisen.
Työn lopputuloksena tuli toimiva monipuolinen varjostinkieli, jonka monipuolisuus saavutettiin käyttämällä kaavaintiedostoja. Näiden pohjalta lopulliset varjostintiedostot luodaan.